摘要:逐步完善中…本篇记录编写自动化接口用例编写思路
目录
1、思路
2、案例
1、思路
接口自动化在每个公司的应用环节不一样,本篇介绍的是以接口自动化实现冒烟测试,将每个模块有关联业务的集合进行一个封装
第一步:将本模块的接口找到,并进行一个简单封装,这是为了扩展用例
第二步:在本模块引用其他外部模块的接口进行一个处理,只要输入出参就能获取到结果然后传给本模块接口使用(本篇未列出,下次介绍)
第三步:编写以test开头的用例,对整个模块可以串起来的功能做一个用例集合
第四步:根据需要将每个接口进行各种场景用例的遍历
2、案例
模块接口简要说明:
1、新增、搜索、结束配置分别是三个接口
2、新增的时候调用数据库去查一次,如果存在配置就删除,这样新增就不会失败
3、搜索接口使用刚新增的配置的结果
ladd_peizhi新增: import requests from aiopms.common import mysql_pub mysql=mysql_pub.MysqlUtil() class myAdd(): def add(self): sql1="select****" m=mysql.mysql_getstring(sql1) if m!=0: sql2="delete****" mysql.mysql_execute(sql2) header={"Content-Type": "application/json;charset=UTF-8"} url="/add" body={""} m=requests.post(url,headers=header,json=body)
lsearch_peizhi搜索: import requests class mySearch(): def search(self,n): header={"Content-Type": "application/json;charset=UTF-8"} url="/search" body={"m":n} m=requests.post(url,headers=header,json=body)
lend_peizhi结束: import requests class myEnd(): def end(self,n): header={"Content-Type": "application/json;charset=UTF-8"} url="/end" body={"m":n} m=requests.post(url,headers=header,json=body)
用例简要说明:
1、将新增、搜索、结束配置接口放在一个用例中;
2、其中,结束配置要用到搜索配置的结果,使用globals()函数将搜索配置的结果保存起来,在结束配置中调用
3、执行整个用例,就将整个配置的接口跑了一遍
import unittest from cases.modules.driver_peizhi import ladd_peizhi from cases.modules.driver_peizhi import lsearch_peizhi from cases.modules.driver_peizhi import lend_peizhi class Testpeizhi(unittest.TestCase): def setUp(self): '''这是配置模块接口用例''' self.m=globals() self.add=ladd_peizhi.addpeizhi() self.search=lsearch_peizhi.searchpeizhi() self.end=lend_peizhi.endpeizhi() def test_add_peizhi(self): '''新增配置''' addresult=self.add.add() result_a=addresult['msg'] self.assertEqual(result_a,"新增成功") def test_b(self): '''搜索配置''' n="aa" search_peizhi1=self.search.search(n) self.m["b"]=search_peizhi1 result_b=search_peizhi1['code'] self.assertEqual(result_b,0) def test_end_peizhi(self): '''结束配置''' n=self.m["b"] n1=n['data']['rows'][0]['id'] endresult=self.end.end(n1) result_c=endresult['msg'] self.assertEqual(result_c,"结束成功") if __name__ == '__main__': unittest.main()