新手入门贴之基于 python 语言的接口自动化 demo 小实战

大家好,我是来自 python 自动化 13 期正在学习接口测试的菜鸟-夜雨声烦。近期通过自己的学习,完成了一个关于测试接口的接口自动化 demo。下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在 Excel 中。因为只是小作 demo,测试用例我没有写的很全,有兴趣的大佬自己补充一下。下面先分享接口文档,以及写在 Excel 中的测试用例,这里需要注意的是,测试用例一定要按照我这种格式写,否则下面封装的 doExcel 类将会无效。
image.png
image.png
现在测试文档和测试数据我们都有了,我们要明确我们要做到什么?基于我目前所学,我最想做到的就是将测试数据与代码分离,执行代码产生的 log 会被记录下来,测试完成之后生成测试报告,然后将测试报告以及 log 甚至将 Excel 更新测试结果邮件发送给相关测试人员。基于这个目的,主要引用的模块有 unittest, ddt, openpyxl, logging, HTMLTestRunner, email, smtplib 以及 requests。unittest 是单元测试框架,ddt 可以做到减少相同测试步骤的冗余代码,openpyxl 模块可以从 Excel 或者 CSV 文档里面读写数据,logging 模块可以记录日志,HTMLTestRunner 可以生成测试报告, email 和 smtplib 模块可以做到发送邮件,request 模块则是做接口测试的必须。好,现在我们来理清一下思路。1. 测试用例有了,我们根据接口文档在代码中实现测试用例的代码化。2. 代码化的时候,发现测试步骤高度一直,可以使用 ddt 模块来减少冗余代码。3. 光使用 ddt 模块,发现测试数据很多的情况下,把数据写在代码里还是很乱,于是考虑将测试用例 Excel 文件的测试数据直接取出来,这就需要使用 openpyxl 模块了。4. 虽然这样做代码执行了,但是如果遇到代码错误的情况下,错误不好定位,执行步骤也不能人机友好的可视化,考虑到这一点,引入 logging 模块,在程序的各个步骤加上 log。5. 现在 log 有了,执行完毕却没有个结果总结那可不行,咱们引入 HTMLTestRunner 模块来生成测试报告。6. 到这一步其实已经差不多了,但是既然测试报告以及 log 都有了,那执行完毕向相关测试人员发送这个测试报告以及 log 岂不是更完美吗?于是乎,引入 email 以及 smtplib 模块,来解决这个问题。既然思路已经有了,剩下来的就是动手实操了。我实操完毕的代码如下 gif 图所示。部分代码参考柠檬班 python 接口自动化的书,相对书上代码我有做出了改动并基于自己理解加以改进。
image.png
代码挺多,就不在社区里发出来了,代码百度云链接:https://pan.baidu.com/s/1QS7SsA2ntmCB0_RZkmRGqQ 提取码:8e0e(有效期 7 天)。
在各个模块中都有坑需要各位大佬去自己踩,踩完之后再填坑收获会更多。时间太晚,写得比较仓促,大佬们轻喷。

18 回帖
请输入回帖内容 ...
请输入回帖内容 ...