大家在测试过程都遇到过关于新增ESG接口的需求吧。ESG又分为服务方和消费方,测试中还涉及三方人员联调。联调完成后,每次回归总是要惊动第三方同事帮忙造数据,或是手工去调用jmete/postman之类的工具执行,接口少自然不用说,接口多了怎么办?于是萌生了用python写这样的自动化接口。
需要准备的环境:
1.ptyhon环境,我自己本地装的python2.7
2.python开发工具,现在比较流行的pycharm,idesk有下载,eclipse需要安装插件。
3.需要安装的包request, unittest,HTMLTestRunner, cx_OracleRequest是我们发送http/https请求的核心包,unittest, HTMLTestRunner主要用于调用案例和测试报告输出,cx_Oracle连接oracle需要的包,因为我们大部分用的都是oracle库,用这个就可以了。
准备就绪后,开始准备案例编写
首先就是拿到ESG通行令牌,通过注册的用户和密码拿到token,可以通过配置文件配置好自己的几个参数。再用requests.get方法把json串取回来,提取自己想要的关键字。
最后再拼接到url上就Ok了。代码如下:
次调用接口了,最核心的两句话如下:
#发送请求
response = requests.request(“POST”,
url, data=payloud, headers=self.header)
#取得反回接口
result =response.text
是不是很简单?
一个完整个的http/https主要包括post和get请求. 大家在用jmeter OR postman总是能看到发送的请求内容。所以参数我们可以通过这些途径获得,也可以直接找开发拿接口文档。
直接这么调用是可以的,不过看起来比较简陋也没有实现参数化,更重要的是看起来有点丑。
DATA的构造也是可以通过代码来组装的,把参数分解,再一层层的组装,这个可以单独写一个类,把需要参数化的关键字参数化了,比如:
{“data”:"[{“id”:null,“secondGradeDeptChineseName”:“中国平安财产保险股份有限公司广东分公司”,“secondGradeDeptCode”:“204”,“thirdGradeDeptCode”:“20409”,“businessName”:“12.26-hl”,“outletName”:“1”,“verificationTime”:“2018-04-24
11:54:42”,“serviceName”:“更换空滤”,“serviceSum”:1,“orderId”:“3802577287049”,“subOrderId”:“1234522565102”,“mobile”:“13112314284”,“customerName”:“1111”,“carNo”:“1111”,“orderTime”:“2018-04-24
11:54:06”,“comprehensiveScore”:1,“servEnvirmentScore”:1,“servEffectScore”:1,“servAttitudeScore”:1,“commentContent”:“测试环境差评,四级机构测试名称\n”,“commentTime”:“20181106102145”,“commentId”:“684908408108748800”,“createTime”:“2018-04-24
11:55:23”,“uuid”:“64120951A84B325DE05490E2BADCE8C8”,“secondGradeDeptCode”:“202”}]"}
数据组装直接看附件的demo,这样DATA就组装完了,直接当入参就可以了。
接口调用后,需要取回接口的应答,判断是否调用成功了。
我是从两个方面验证结果的
1.接口返回的关键字,比如ok,success,之类的
2.另外就是验证数据库了,是否插入,是否修改删等
数据库的配置使用cx_Oracle的导,把所有配置都填上就可以连了,使用中直接传入要查询的SQL。
把你想要查询的结果返回出来,读取有用的信息进行判断就Ok,用unittest. Assert*方法验证案例的执行结果。
最后案例的批量执行可以用unittest, HTMLTestRunner,网上COPY的一段,直接用就可以了。
可以查看到报告:
是不是很简单,针对我的系统目前已经够用了,相信大多调用esg的系统也都能用。欢迎大家一起讨论,学习!
最后:软件测试资料分享一波!
技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。
金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
愿你我相遇,皆有所获! 如果对软件测试、接口测试、自动化测试、面试经验交流。关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!