29、OSPF配置实验之被动接口
317
2023-01-30
本文目录一览:
自动化测试是互联网软件开发行业发展之后http接口自动化测试的新的产物http接口自动化测试,而今天http接口自动化测试我们就一起来了解一下,关于接口的自动化测试都需要包含哪些内容以及接口测试的文档架构。
接口都有那些部分组成呢?
接口文档应该包含以下内容http接口自动化测试:
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
如果是测http接口,你需要至少需要调用一个发送http请求的库,例如httpclient来发送不同类型的请求给到待测的接口,如GET,POST,PUT,DELETE,带上你的请求头header和请求体body,然后通过xml库来解析感兴趣的返回值的字段,与期望值做比较,从而判断用例成功还是失败。
接口自动化整体思路
说简单的接口自动化大致三个步骤http接口自动化测试:a-发送请求;b-解析结果;c-验证结果
为了方便起见,你应该自定义三个和业务相关的测试类:
1.一个用来封装httpclient,用来发送请求的类,云南java课程http://www.kmbdqn.cn/建议用于发送各类测试请求。
2.一个解析结果xml的类,用来获取感兴趣的结果值。
3.一个用于比较测试结果和期望值的类,用于验证。
当然这是简单的一个http借口测试框架,如果你愿意还可以做的更强大,比如自动生成测试数据,生成自定义格式的测试报告,自动发送测试报告,检查服务端数据内容是否正确等等。
如图:
附件内容包括
(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
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~