随着移动互联网和微服务的迅速发展,大部分企业都采用接口的方式实现客户端和服务端的交互,传统的PC端也逐渐趋向于前后端分离架构。为了应对此种架构下的业务迭代,很多QA团队开始推广接口自动化,甚至是自研接口测试框架。
选型
一个好的接口测试框架可以抽象公共功能,有效应对业务变化,降低接口实现成本。但对于强业务相关的测试团队来说,迭代速度快,业务流程繁杂,接口难以标准化,自动化框架的维护成本非常高。对于小型QA团队来说,专人维护框架的成本过高,而留给业务测试同学编写自动化测试用例的时间又比较少。有效的接口测试需要和业务强挂钩,随着业务变更及时更新,否则接口测试就丧失了存在的意义。
面对这种情况,可以考虑采用和扩展业界已有的接口测试工具Jmeter来快速完成自动化框架构建功能。Jmeter诞生于2001年,目前已更新到5.x版本,他功能强大并且开源免费:
• 录制&回放:BlazeMeter可实现录制和脚本自动生成
• 多协议支持:支持 http、https、jdbc、jms、ftp 等等协议
• 参数化和断言支持:提供多种参数化函数和多种格式断言组件
• 图形展示:提供多种结果展示
• 易于安装:jmeter 下载解压即可用,且支持多种平台Windows/Mac/Linux
• 高扩展性:jmeter 支持用户自定义测试脚本,Beanshell/Javascript/Groovy
选定工具以后就可以在团队中进行落地和推广,首先要明确接口测试的流程,然后是多人协作时用例的组织和复用。
接口测试流程
接口测试流程和手动测试/UI测试流程类似,但侧重点不同:
• 需求分析:需求文档 VS 接口文档。
• 编写和评审用例:根据需求变更结合业务优先级,边界值等价类等分析方法设计手动测试用例;根据接口的参数组合以及接口的预期返回设计接口测试用例。
• 准备测试环境和测试脚本:接口测试需选择合适的工具实现步骤2中评审的用例。
• 执行测试用例,发送测试报告:接口测试自动运行脚本,生成和发送测试报告。
用例组织和复用
Jmeter提供了三种组件帮助复用和组合脚本片段:
• Test Fragment(测试片段)
• Module Controller(模块控制器)
• Include Controller (包含控制器)
在实际编写过程中,从下往上业务人员可以把接口测试划分为:
• Sampler级别:一个HTTP请求的发送和响应校验
• 线程组级别:一个功能点的接口测试集合
• 测试片段级别:一个测试用例的接口测试集合
• JMX脚本级别:一个测试套件的接口测试集合
每个业务人员维护功能级别的接口脚本,再通过Jmeter的脚本管理组件实现多个功能或者多个用例的自由组合,来适应不同的业务场景。
报告生成和持续集成
Jmeter提供了Ant支持,可以运行ant任务自动转化脚本运行结果为HTML报告。
由于Jmeter支持Ant构建和运行,因此可以很方便的和持续集成工具结合起来使用,以Jenkins为例,配置构建方式为Ant,指明Jmeter脚本路径即可实现脚本自动运行和报告发送功能。
作 者:Testfan Kitty
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接