如何使用Jmeter提高接口测试效率

  在展开这个话题之前,咱们先来看看绝大多数情况下,测试人员是如何进行接口测试的?

  第一步:编写测试案例,然后上传测试案例管理系统;

  第二步:准备测试案例数据,执行测试案例;

  第三步:提取接口响应报文、上送报文等信息,然后更新测试案例管理系统测试案例的状态;

  第四步:提交缺陷;

  既然咱们要聊的是如何提高接口测试效率,那么就得分析上面哪些步骤是可以通过工具来辅助完成。换个角度想一下,如果测试人员执行完测试案例后,案例执行结果可以自动同步测试案例管理系统,不通过的测试案例可以自动提交缺陷,是不是节省了测试人员不少工作量。

  下面以Testlink+Jmeter+Jira为例展开说明:

Testlink+Jmeter+Jira集成

  谈起开源的测试框架Jmeter,很多人的第一印象是性能测试。其实Jmeter也常常用来做接口测试。依赖于Jmeter提供的CSV Data Set Config配置元件+变量参数化,测试人员可以很容易的完成一个数据驱动的测试案例脚本。但是对于测试案例量大的脚本,Jmeter所提供的断言和监听器并不能很友好地为测试人员展现脚本执行结果。为了解决该问题,笔者在文章《Jmeter排忧解难—生成excel结果文件》提到了一种方法,下面咱们在此基础上聊聊如何把脚本执行结果同步Testlink及如何自动提交Jira缺陷。

数据驱动测试

  同样作为开源工具的Testlink,相信不少童鞋也接触过。Testlink的优点在于免费,同时也提供了十分完整的测试报告,这就是测试管理人员热衷Testlink的主要原因。关于Testlink的使用笔者将在另外一篇文章做详述,咱先回到前面的话题“如何将Jmeter脚本执行结果同步Testlink”。

Testlink首页
Testlink测试报告

  Testlink对外提供了Testlink java api,通过调用里面的reportTCResult方法即可更新Testlink的测试案例。那接下来我们要做的事就是读取Jmeter脚本执行结果(excel格式文件),然后再调用reportTCResult方法同步Testlink,这下子是不是觉得好简单了。

reportTCResult方法
Jmeter脚本执行结果

  我们把读取Jmeter脚本执行结果并同步Testlink的java类导出jar包并放到Jmeter的lib/ext目录下,后续就可以在Jmeter的BeanShell Sampler直接写代码调用方法同步Testlink了。至此,同步Testlink的功能咱们算是实现了。

封装好的jmeterReportToTestlink方法
Jmeter执行结果同步Testlink
同步Testlink的结果

  跟Testlink一样,Jira也对外提供了rest api(请自行百度),通过调用接口,咱们也可以很方便地把测试不通过案例自动提交Jira缺陷,并把缺陷编号关联Testlink,后续再依赖Testlink强大的测试报告功能进行缺陷密度分析。

  由于可能存在误提缺陷的情况,所以增加了确认功能,确认缺陷后才进行提交。缺陷的信息包含测试要点、预期结果、实际结果、上送报文、响应报文、附件及其他描述信息。

提交Jira缺陷
Testlink缺陷报告

  本着让测试人员简单愉快地测试,笔者已将上述理念运用于测试管理中,不但提升了测试效率,一定程度上也简化了测试管理的工作。对于Testlink和Jira外部api的技术或非技术问题,有兴趣的同行可以私信笔者。另外,各位测试同行如果有其他想法,欢迎留言交流。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 4,214评论 0 16
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,225评论 2 126
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,761评论 5 100
  • -----转载----- 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? ...
    花开沉浮阅读 7,475评论 4 88
  • 1****、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决?首先...
    一箭阅读 9,115评论 1 205