接口普遍有两种意思,一种是API(ApplicationProgramInterface),应用编程接口,它是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信。而另外一种则是Interface,它是面向对象语言如java,c#等中一个规范,它可以实现多继承的功能。接口测试中的接口指的是API。
为什么要使用接口:
假如公司的产品前端开发还没开发完,接口开发好了。有天领导说,小王,你测下这个登录功能,要是你不懂接口的话就会对领导说这个功能测不了啊,页面没开发完。
接口测试是不需要看前端页面的,可以更早的介入到测试工作中,提高工作效率。
根据测试金字塔,越底层成本越低,一个底层的bug可能会引起上一层的多个bug,所以测试越底层,越能保证产品的质量,也越能节省测试的成本。而单元测试一般是由开发来完成的,所以对于测试来说,接口测试是非常必要的。
对于自动化测试来说,UI的变动性最大,所以UI自动化测试的维护成本很高。而接口的改动很小,所以接口自动化测试是最实用,最节约成本的。
接口功能自动化测试流程如下:
需求分析->用例设计->脚本开发->测试执行->结果分析
2.1示例接口
手机号码归属地
接口地址:http://apis.juhe.cn/mobile/get
返回格式:json/xml
请求方式:get
请求示例:http://apis.juhe.cn/mobile/get?phone=手机号&key=您申请的KEY
需求分析是参考需求、设计等文档,在了解需求的基础上还需清楚内部的实现逻辑,并且可以在这一阶段提出需求、设计存在的不合理或遗漏之处。
如:手机号归属地接口,输入不同号码段的手机号,查看手机号归属和手机号码属于哪个运营商
5.1模块安装
使用pip命令安装即可:
pipinstallrequests
5.2接口调用
使用requests库,我们可以很方便的编写上述接口调用方法(如输入phone=手机号,示例代码如下):
在实际编写自动化测试脚本时,我们需要进行一些封装。
我们按照测试用例设计,依次编写每个功能的自动化测试脚本即可。
在手工测试接口的时候,我们需要通过接口返回的结果判断本次测试是否通过,自动化测试也是如此。
对于本次的接口,输入手机,我们需要判断返回的结果resultcode是不是等于200结果分页时需要校验返回的结果数是否正确等。完整结果校验代码如下:
运行结果:
5.4生成测试报告
用例执行完之后,那就需要发报告给领导。
那么我们使用HTMLTestRunner第3方模块插件生成html格式测试报告
5.5发送邮件报告
测试完成之后,我们可以使用zmail模块提供的方法发送html格式测试报告
基本流程是读取测试报告->添加邮件内容及附件->连接邮件服务器->发送邮件->退出,示例代码如下:
打开完成后生成的测试报告,可以看出本次测试共执行了2条测试用例,1条成功,1条失败
最终发送测试报告邮件,截图如下:
作者:骑着乌龟赶猪
原文链接:https://www.cnblogs.com/zzpython/p/13283416.html