Python接口自动化框架设计到开发,赶紧用起来

Python测试开发

共 2569字,需浏览 6分钟

 · 2022-06-11

1.如何设计一个接口自动化测试框架


根据接口地址丶接口类型丶请求数据丶预期结果来进行设计,对于需要登录后才能进行操作的接口那么则需要进行header cookie等数据的传递,自动化测试的难点就是数据依赖


2.python操作excel获得内容


  • 首先python操作excel,需要安装两个包,分别是xlrd和xlwt这两个库,xlrd这个库是负责读取excel数据的,而xlwt库是负责向excel写入数据的


  • 在项目目录下创建utils工具包,在该包下创建op_excel.py文件,在该文件中通过导入xlrd包,对excel表的数据进行读取操作


3.重构操作excel函数


  • 根据上一步骤读取excel表的内容代码后,进行了一个简单的封装,提高代码的通用性,过程相当的简单,实现代码如下

  • 运行op_excel.py文件后,结果与封装之前代码结果一致,表示重构封装代码成功


4.学习操作json文件


  • 自定义一个登录的json文件名为login.json,文件内容如下,存放在test_data目录下


  • 在utils工具包下创建op_json.py文件,在文件中对login.json文件内容进行读取操作,代码如下



5.重构json工具类


  • 将上一步操作json的代码进行封装

  • 运行op_json.py文件,结果与封装之前代码结果一致,表示重构封装代码成功


6.封装获取常量方法


  • 首先打开excel表格,查看需要获取的字段有哪些

  • 对excel表的字段进行获取,在项目目录下创建名为data的python包,在该包下创建data_conf.py,代码就是简单的获取对应的变量值,具体如下


7.封装获取接口数据


  • 在data目录下创建data_get.py文件,在该文件中对excel表数据以及json数据结合上一步封装的常量方法整合后的实现,代码如下


8.post、get基类的封装


  • 在base包下创建run_method.py文件,在文件中重新编写对get丶post请求方式的代码封装,具体如下


9.主流程封装及错误解决调试


  • 首先在testItems项目目录下新建一个名为main的python包,在该包下创建名为run_test的py文件,该文件为主程序启动文件,代码的逻辑就是将前面封装的方法进行了调用核心就是读取excel表的数据,通过读取到的数据,发送请求,其中包括某一些变量的判断,根据该判断然后到json数据中获取请求的数据,最后就这么的简单,代码如下

  • 运行run_test,成功的将excel以及json数据正确打印出来,返回res服务器返回结果,需要说明的是excel表中的所有数据都不是真实存在的,包括json文档数据也是,这里主要是测试整个框架的正确性读取excel以及json文档数据,并正确的发送请求获得相应数据


  • 运行结果出现红色的内容,是由requests模块发送请求的安全请求警告,如不想显示此警告,可以在run_method.py发送请求核心代码进行禁用,禁用代码如下

  • 重新运行run_test,安全请求警告不再显示

  • 根据代码运行结果,对比excel表以及json数据文档内容,数据正确无误


10. 返回数据格式处理以及调错


  • 为了测试返回的接口的响应数据,博主这里在excel文档以及json文档中添加了一条数据


  • 因为在excel文档中小说的接口不携带header所以在向接口发送请求数据核心代码块,进行了如下修改,因为在excel文档中的最后一个接口时真实的,所以只需要对最后一个接口url返回的字典类型的响应数据进行转换成json格式的数据,并按照关键字进行排序


  • 运行run_test,在最后一个接口中成功打印出我们想要的数据


11.获取接口返回状态


  • 在发送请求数据核心代码中,进行打印返回的状态码status_code即可,最后一个接口比较特殊,返回的响应数据中没有status_code,所以需要对返回的json数据中的status进行判断,并向其返回数据中添加我们所要的status_code的值

  • 运行代码,当返回的状态码为404表示接口不存在,只要是存在响应数据,则status_code为200,必须说明一点的就是status_code为200不一定表示接口存在,有些大型网站会对其域名下不存在的接口返回200的错误页面显示,所以在测试文档中会体现预期结果和实际结果两项数据需要一致才能表示测试通过


12.通过预期结果判断case是否执行成功


  • 进行接下来的测试,博主这里重新准备了另一个excel表来进行测试,需要对json文件中的数据进行添加,在excel表Book-05中的请求数据book5关键字对应的json文件的数据故意为空,可以对测试结果有一个对比

  • 在数据获取核心类中定义了一个方法来获取excel表模块字段的数据

  • 回过头在启动文件中获取模块名预期结果并进行打印

  • 运行启动文件,查看运行结果

  • 在utils目录下,创建common_util.py文件,在该文件代码中通过启动文件传递过来的数据来判断excel表预期结果数据的status状态码与res结果中的status状态码是否一致,一致表示测试通过,不一致则失败,代码如下

  • 在启动文件中需要注释掉res响应数据,利于查看测试结果,还需要在启动文件调用is_contains方法来根据其返回值判断测试是否通过


  • 运行启动文件,查看测试结果


13.将测试结果写入到excel中


  • 首先在op_excel.py中定义一个方法,该方法实现读取excel的数据,并进行copy复制,然后再write方法将数据写入到坐标位置


  • 然后在data_get.py中需要定义一个方法,在该方法中核心逻辑为获取y坐标的值


  • 最后在启动文件中,调用data_get模块中的write_reality_data方法,并将剩余的x坐标的值以及data数据传递给最终的核心方法write_reality_result_data来完成对excel表中的实际结果数据的写入


  • 将excel表进行关闭后,运行启动文件,再次打开excel表,实际结果数据写入正确,之所以需要关闭excel是避免提示提示错误,无法写入保存数据



转载自:http://navo.top/a2emA3



-------- THE END --------

🍁


浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报