python接口自动化测试(前)
-
接口自动化测试目地
自动化测试也遵循软件测试的过程那就是输入输出,只不过自动化测试通过代码实现测试用例,控制输入断言输出,并生成测试报告。
一般情况下自动化测试是为了降低回归测试成本以及响应快速度跌代,所以并不表代自动化本身的成本不高 。这里标题是“接口自动化测试架构”,那为什么一定要做接口自动化测试呢?请看现在主流互联网产品图:

现在移动端产品铺天盖地,而移动端的数据来源一般都是HTTP API提供,重点是移动端android和iOS一般都用的一套HTTP API。如果说你要做移动端的功能测试,那会HTTP接口测试应该算一个基本要求。一套稳定的接口是移动APP持续稳定运行的基础之一,每次服务端发布后在移运APP端点点点也不一定能发面接口里面的错误,而且这个工作量也确实有点大。还有一点就是定位问题,你发现APP有个地方奔溃了,你怎么确定问题呢,你起码得调一下api看下情况,直接把问题抛给移动客户端是极不负责任的。
那这里接口自动化的意义就体现出来了:
1、一套脚本能验证两个系统的数据正确性。
2、随时随地去调用接口验证问题。
3、缩短回归测试时间。
-
HTTP接口测试工具选择
现在开源的接口测试工具很多,这里我简单的介绍一些,postman、soapui、jmeter、robotframework等……我想告诉你这些工具都很牛B。
postman直接在浏览器下调试,而且直接格式化json爽的不行。
soapui比较专业的接口测试工具,支HTTP、WEBSERVICE,包括断言和数据查询它都能做,据说很多人用。
jmeter通常用在接口性能测试,其实也可以用来功能测试,只是断言麻烦一点。
robotframework它和python一样是个万金油,几乎支持所有的功能自动化测试,还是个关键字驱动框架。
但是框架必须迎合公司产品需求以及测试需求,易于扩展,当然最重要的一点就是用来装B这样才能显得你有水平。我是一个python爱好者,这门万金油的语言是非常适合测试的,入门比较快有大量的库可以快速度的编写脚本或是工具。这里我们要做的是HTTP接口测试,选择的主库当然是requests,对于这个神库在这里不介绍太多。http://www.python-requests.org/en/master/,后面会再做一些说明。
-
测试框架构成
架构的目地
正如同软件本身有其要达到的目标一样,架构设计要达到的目标是什么呢?一般而言,软件架构设计要达到如下的目标:
- 可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。
- 安全行(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。
- 可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。
- 可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。
- 可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展
- 可维护性(Maintainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费
架构的功能
选择了python和requests虽然可以调试HTTP接口,但不能不构成自动化框架,我们还需要组织一些资源形成真正的测试框架。测试接口测试必须是数据驱动,你输入的数据决定了服务器返回给你的数据。
一个测试接口框架要具备如下功能:
- 测试项可配置性。
- 测试数据可管理、易于维护。
- 测试用例编写简洁,模块分明。
- 测试用例执行方便可无人值。
- 有详细的测试报告和测试日志记录,可追溯。
看下图它们是如何组织成一个测试系统,后面我们会慢慢讲解如何完成这一个自动化测试系统。


浙公网安备 33010602011771号