2、其次新创建工程,可以把jmeter,ant,jenkins结合起来,实现接口自动化或者性能测试的自动化测试平源孝台。早裂山
3、最后通过jmeter代码转换的方式连接到xml,让xml格式的代码转化数据的方式导入jmeter后台运行。
如图:
附件内容包括
(1)测试用例执行摘要:
(2)测试用例详细并宏信息:
如果http请求是post
获取post请求数据
断言内容解析:
int errcount 掘带= Integer.parseInt(vars.get("errcount").trim())
int allcount = Integer.parseInt(vars.get("respcount").trim())
int equalscount=0
int equalsokcount=0
if("${HttpStatus}"!=""){
// log.info("==========================${HttpStatus}")
if(SampleResult.getResponseCode().equals("${HttpStatus}".trim())) {
equalscount++
equalsokcount++
// log.info("================equalscount: " + equalscount)
// log.info("================equalsokcount: " + equalsokcount)
}else {
String code = SampleResult.getResponseCode()
vars.put("respcode",code)
vars.put("AssertionNoOk","断言失败内容为:HttpStatus,实际请求返回的HttpStatus为: "+code+",断言内容的HttpStatus为: "+"${HttpStatus}")
equalscount++
// log.info("================ERRORequalscount: " + equalscount)
// log.info("================ERRORequalsokcount: " + equalsokcount)
// log.info("====================ErrorHttpStatus is: " + code)
}
}
if("${ResponseMessage}"!=""){
if(SampleResult.getResponseMessage().equalsIgnoreCase("${ResponseMessage}".trim())) {
equalscount++
equalsokcount++
}else {
equalscount++
String msg = SampleResult.getResponseMessage()
vars.put("respmsg",msg)
vars.put("AssertionNoOk","断言失败内容为:ResponseMessage,实际请求返回的ResponseMessage为: "+msg+",断言内容的ResponseMessage为: "+"判蔽芦${ResponseMessage}")
}
}
if("${ResponseData1}"!=""){
if(SampleResult.getResponseDataAsString().contains("${ResponseData1}".trim())) {
equalscount++
equalsokcount++
}else {
equalscount++
String data = SampleResult.getResponseDataAsString()
vars.put("respdata",data)
vars.put("AssertionNoOk","断言失败内容为:ResponseData1,实际请求返回的ResponseData1为: "+data+",断言内容的ResponseData1为: "+"${ResponseData1}")
}
}
//log.info("===================================ResponseData2=" + "${ResponseData2}".trim())
if("${ResponseData2}"!=""){
if(SampleResult.getResponseDataAsString().contains("${ResponseData2}".trim())) {
equalscount++
equalsokcount++
}else {
equalscount++
String data = SampleResult.getResponseDataAsString()
vars.put("respdata",data)
vars.put("AssertionNoOk","断言失败内容为:ResponseData2,实际请求返回的ResponseData2为: "+data+",断言内容的ResponseData2为: "+"${ResponseData2}")
}
}
if("${ResponseData3}"!=""){
if(SampleResult.getResponseDataAsString().contains("${ResponseData3}".trim())) {
equalscount++
equalsokcount++
}else {
equalscount++
String data = SampleResult.getResponseDataAsString()
vars.put("respdata",data)
vars.put("AssertionNoOk","断言失败内容为:ResponseData3,实际请求返回的ResponseData3为: "+data+",\n断言内容的ResponseData3为: "+"${ResponseData3}")
}
}
if(equalscount==equalsokcount) {
SampleResult.setSuccessful(true)
vars.put("sendemail","no")
allcount++
vars.put("respcount",allcount.toString())
}else {
errcount++
allcount++
SampleResult.setSuccessful(false)
vars.put("errcount",errcount.toString())
vars.put("respcount",allcount.toString())
vars.put("sendemail","yes")
}
利用SMTP Sampler发送邮件
邮件内容如下:
至此,Jmeter HTTP接口自动化引擎搭建完毕
还可以利用jenkins定时执行Jmeter引擎,从而实现对线上接口的监控
资料参考:
(1)Jmeter build.xml文件: http://pan.baidu.com/s/1i46tMlR
(2)Jmeter生成报告格式(参考heman贺满博客 http://www.cnblogs.com/puresoul/http://pan.baidu.com/s/1kVssMzl ):
(3)jmeter.properties(修改jmeter生成.jtl文件内容配置): http://pan.baidu.com/s/1cyaNlc
(4)测试用例模版:http://pan.baidu.com/s/1kVegq6j
(5)Jmeter接口自动化引擎内容:http://pan.baidu.com/s/1kVop9n5
首先要打开Jmeter,打开方式跟一般的软件有些区别。可执行程序位于apache-jmeter-3.1-->bin-->jmeter.bat,双击Jmeter.bat即可打开该应用程序添加线程组。右键测试计划,添加-->Threads(User)-->线程组,所有的 *** 作都会通过这个线程组来进行,包括循环的次数,运行的时间等等。之后测试的webservice接口,结果查看,都要通过线程组
添加WebService测试单元。
我们都是用SOAP协议通过Http来调用它,具体原理:Web service都是放在Web服务器(如IIS)后面的,客户生成的SOAP请求会被嵌侍手入在一个HTTP POST请求中,发送橡谈乎到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。
所以我们要添加soap协议request
右键线程组-->添加-->Sample-->SOAP/XML-RPC Request
添加查看结果选项。右键刚添加的SOAP/XML-RPC Request,添加监听器,点击图形结果和用表格查看结果,也可以加入其它结果
设置SOAP/XML-RPC Request,填写WebService的地址,SOAPAtion地址以及数据格式,webservice暴露了哪些接口,接口都需要传入哪些参数,在梁悉数据格式中都有体现,你只需要去替换参数,传个服务器就可以了
设置完之后,可以点击运行按钮,测试一下,点击添加的结果模块查看结果是否成功
7
测试成功之后,设置线程组的线程数和循环条件进行压力测试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)