http://victorcai0922.iteye.com/blog/1565420

最近在利用Jmeter来做一套自动化性能测试框架,做自动化性能测试框架的目的是希望能够针对系统做一个benchmark的性能测试,能够快速的在每 个版本发布后,对该版本进行benchmark性能测试,以比较与上一个版本的性能是否发生变化,若发生变化便可以快速的通知开发人员以确定性能发生变化 的模块或者代码。同时测试或者开发可以上传性能测试脚本到测试平台,测试平台接到测试脚本后就可以进行性能测试并返回测试结果.基于这一点的考虑是,一般 的测试工程师(特别想功能测试工程师)和开发工程师可能没有相关的性能测试环境供他们使用,因此建立这样的平台就是希望能够让每个人都能快速的进行性能测 试,而不需要关注性能测试环境(往往配置一个性能环境可能需要很长的时候).

1.框架简要介绍

选择Jmeter来搭建这样一个平台是基于Jmeter本身的Open source, 并且是用纯JAVA开发的测试工具,方便与其他的工具的集成和扩展。最重要的是,你可以看到源码。

这套框架基本的执行流程和逻辑其实很简单,利用Jenkins的CI功能,实时检查脚本库,若有变更便调用JMeter来执行脚本,并将测试结果通过邮件或其他方式通知相关人员。主要逻辑图如下所示:




2. Maven执行Jmeter

MAVEN是一个非常优秀的项目管理工具,关于Maven和Ant的主要区别可以去网上查询,我们在这里主要介绍一下用MAVEN如何去运行 JMeter, JMeter支持多种运行方式,有GUI方式和NONGUI方式,各有优势,我们在自动化性能测试平台的搭建中采用NonGUI方式来运行测试脚 本,NonGuI方式其实也就是通过Command命令来运行,那么如何通过Maven来调用呢,不用慌张,已经有Jmeter-maven- plugin这样一个Maven插件来运行Jmeter了,如果看过Jmeter源码的话,可以看到在Jmeter中有这样一个Class,叫做 NewDriver.class,这个类是Jmeter的入口,我们可以看一下这个类的Main方法:



看到try模块中的最后几行可以看到,通过Java反射机制,JMeter.start()方法被调用到,并且将相关的参数传递给该方法。因此我 们可以想象到JMeter-maven插件中肯定也是通过调用这个方法来启动JMeter的,我们来看一下JMeter-maven-plugin这个插 件(关于如何开发maven插件在这里不具体讲,可以参考网上资料)中的主要调用代码:



重点参考TestManager这个类,这个类是主要用来启动Jmeter的,我们可以参考这个类中的executeSingleTest(File test)这个方法:



这个方法验证了我们刚才这个猜想。在完成通过MAVEN启动Jmeter的分析过后,我们所要做的事情就是如何解析Jmeter运行后所得到的测试结果,并将这个测试结果以相关的格式展现出来。

关于如何具体解析Jmeter执行结果将在下篇Blog中具体阐述。

posted on 2016-07-18 11:14  漂浮的心  阅读(624)  评论(0编辑  收藏  举报