本发明涉及软件测试技术领域,具体涉及一种基于jmeter的接口测试方法。
背景技术:
apachejmeter是apache组织开发的基于java的压力测试工具,可以用于对静态的和动态的资源(文件,servlet,perl脚本,java对象,数据库和查询,ftp服务器等等)的性能进行测试;也可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。
目前基于jmeter支持的接口测试中,可以直接支持http协议和webservice,但是对于普通的java接口,是通过人工编写软件接口的测试代码来进行的。
技术实现要素:
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于jmeter的接口测试方法,该接口测试方法针对jmeter的普通java接口测试,通过设置和修改参数,能够直接使用,不需要测试人员编写代码。
本发明的目的可以通过采取如下技术方案达到:
一种基于jmeter的接口测试方法,所述的接口测试方法包括下列步骤:
s1、利用jmeter为基础工具,通过反射获取接口的服务协议;
s2、利用jsontemplate生成表单,获取参数;
s3、通过反射执行runtest方法;
s4、配置参数后执行用例,然后查看测试结果,完成测试。
进一步地,所述的步骤s4、配置参数后执行用例,然后查看测试结果,完成测试具体包括:
打开jmeter,建立一个测试计划;
选中jmeter的线程组,找到sampler下的java名称,添加此元件;
编辑测试用例;
执行用例;
直接点击运行当前测试用例;
查看测试结果。
进一步地,所述的步骤s4中查看测试结果之前,还包括下列步骤:
添加一个察看结果树元件。
进一步地,所述的步骤s1、利用jmeter为基础工具,通过反射获取接口的服务协议具体包括:
安装jmeter和eclipse环境;
建立java类文件;
在publicvoidsetuptest(javasamplercontextcontext)中实例化beanshelleg类;
参照jmeter的javatest,继承abstractjavasamplerclient类,可在javasampler看到建立的java请求;
通过publicargumentsgetdefaultparameters()进行java请求参数化,并做成参数表供用户填写变量;
使用publicsampleresultruntest(javasamplercontextcontext)调用需要测试的接口;
实例化sampleresult,记录运行结果;
定义事物开始;
设置事物结束;
设置事物成功;
设置javasampler标题;
设置响应成功;
设置响应内容;
使用publicvoidteardowntest(javasamplercontextcontext)完成收尾;
把写好的类,打包成.jar文件,放在jmeter工程的%jmeter_home%\lib\ext目录中;
把需要测试的接口包放到jmeter工程的%jmeter_home%\lib目录,把依赖包放到jmeter工程的%jmeter_home%\lib目录中;
重新启动jmeter,类名称下拉的列表可以看到扩展的类。
本发明相对于现有技术具有如下的优点及效果:
本发明提供的基于jmeter的接口测试方法,对于普通java接口测试,通过简单的设置和修改参数,能够直接使用,不需要测试人员编写代码。对于测试的要求较低,能够在测试中大力推广和方便使用。
附图说明
图1是本发明公开的一种基于jmeter的接口测试方法的流程步骤图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
基于jmeter的普通java接口测试,是通过人工编写测试代码来进行的,该方法要求测试人员具有较强的测试代码开发能力,测试代码开发的工作量大,不利于软件接口测试工作的广泛开展,而且软件接口测试的成本较高。
本实施例公开了一种基于jmeter的接口测试方法,主要针对jmeter的普通java接口测试,通过设置和修改参数,能够直接使用,不需要测试人员编写代码。
如附图1所示,该接口测试方法具体包括下列步骤:
利用jmeter为基础工具,通过反射获取接口的服务协议;
利用jsontemplate生成表单,获取参数;
通过反射执行runtest方法;
设置好参数后执行用例,然后查看测试结果,从而完成测试。
从上述步骤可知,通过jsontemplate简单易读的语法,测试人员可以轻松编辑模板文件,不需要写代码。
以下详细说明本发明实施提供的该方法的具体实现流程。
安装好jmeter、eclipse等环境;
建立java类文件;
在publicvoidsetuptest(javasamplercontextcontext)中实例化beanshelleg类;
参照jmeter的javatest,继承abstractjavasamplerclient类,可以在javasampler看到建立的java请求;
通过publicargumentsgetdefaultparameters()进行java请求参数化,并做成参数表供用户填写变量;
使用publicsampleresultruntest(javasamplercontextcontext)调用需要测试的接口;
实例化sampleresult,记录运行结果;
定义事物开始;
设置事物结束;
设置事物成功;
设置javasampler标题;
设置响应成功;
设置响应内容;
使用publicvoidteardowntest(javasamplercontextcontext)完成收尾;
把写好的类,打包成.jar文件,放在jmeter工程的%jmeter_home%\lib\ext目录中;
把需要测试的接口包放到jmeter工程的%jmeter_home%\lib目录,把依赖包放到jmeter工程的%jmeter_home%\lib目录中;
重新启动jmeter,类名称下拉的列表可以看到扩展的类。
执行和配置:
打开jmeter,建立一个测试计划;
选中jmeter的【线程组】右键找到sampler下的java名称,单击添加此元件;
编辑测试用例;
执行用例;
先添加一个察看结果树元件,方便查看测试结果;
直接点击运行当前测试用例。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。