美文网首页
python+requests实现Esg接口自动化

python+requests实现Esg接口自动化

作者: 金融测试民工 | 来源:发表于2021-02-02 11:21 被阅读0次

    大家在测试过程都遇到过关于新增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+requests实现Esg接口自动化

      本文链接:https://www.haomeiwen.com/subject/cutytltx.html