jmeter 单接口测试方案(接口无业务关联)

前言

前面开了一篇讲了Jenkins+jmeter+ant的使用,但没有说到具体怎么投入到项目使用,主要介绍了接口测试定义,流程和环境部署,所以我今天要说的就是我是怎么将这个方案投入到实际中使用的。这套方案主要用于相互接口之间无业务关联的测试。

结构设计与数据准备

接口测试的流程

  1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档
  2、 获取接口测试文档后,就可以进行接口用例的编写和调试
  3、 接口用例编写调试完成后,部署到持续集成的测试环境中,
  4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控
  5、 每日进行接口脚本的维护更新,接口异常的处理

jmeter 单接口测试方案(接口无业务关联)

jmeter测试过程

jmeter 单接口测试方案(接口无业务关联)

jmeter+jmeter+ANT 整体结构设计

jmeter 单接口测试方案(接口无业务关联)

测试数据

我的测试数据是用CSV管理的,包含域名、url、方法(get还是post)、 参数 、预期结果(可以是多个),使用excel创建然后转化程csv格式,这样一来我们只需要在excel中维护我们的用例就好了

jmeter 单接口测试方案(接口无业务关联)

从数据格式可以看出,做了用例的执行标识,选中为YES时才执行,NO时不执行,这是一个用例选择执行的简单设计,还有请求的方法也是可以选择的,目前项目中的主要用POST和GET,除此之外之后要获取的还有用例名,调用的接口和具体的测试请求数据,这就是使用excel管理测试用例的模块

 注意:包含中文字符jmeter取值可能会报错,修改${jmeterhome}/bin/jmeter.profile 

# The encoding to be used if none is provided (default ISO-8859-1)
#sampleresult.default.encoding=ISO-8859-1
sampleresult.default.encoding=UTF-8

配置基本完成,之后就是项目的目录架构:

jmeter 单接口测试方案(接口无业务关联)

  1. ./Test_Play/目录用来放Jmeter生成的Case文件(编写时注意,不要用绝对路径,否则后续维护成本会提高)
  2. ./Test_suit/目录用来放Jmeter测试需要的相关配置文件
  3. ./资源/目录用来存放项目相关的一些文档信息
  4. build.xml文件,Ant的配置文件
  5. 阅读build.xml文件,会发先还有一个自动生成的目录./report,该目录下有两个目录jtl以及html,用来放置不同格式的测试报告。

脚本设计

添加一个CSV Data Set Config,把我们的文本路径填进去

jmeter 单接口测试方案(接口无业务关联)

添加BeanShell PreProcessor和BeanShell PostProcessor,主要 目的是为了处理中文乱码

jmeter 单接口测试方案(接口无业务关联)

jmeter 单接口测试方案(接口无业务关联)

添加if控制器,根据case_satus判断该条用例是否执行,根据Ament判断是HTTP请求还是JAVA请求,根据method,来判断执行get还是post的请求

jmeter 单接口测试方案(接口无业务关联)

jmeter 单接口测试方案(接口无业务关联)

设置断言,判断我们的结果是否正确

jmeter 单接口测试方案(接口无业务关联)

根据用例数,设置循环次数

jmeter 单接口测试方案(接口无业务关联)

  • 可使用java直接取值判断有多少条用例进行执行
  • String filename=vars.get("JF_API_data");
    String [] datalist=new String[20];
    String content;
    InputStream openfile = new FileInputStream(filename);
    Workbook wb = Workbook.getWorkbook(openfile);
    Sheet FirstSheet = wb.getSheet(0);
    int totalRows=FirstSheet.getRows();
    int rows=totalRows-1; //减1是因为我标题行不取,为了后面从第二行开始取
    String data=rows.toString();
    vars.put("row",data); //用例行数
    wb.close();

     

运行调试,查看结果

jmeter 单接口测试方案(接口无业务关联)

接入jenkins

脚本设计完以后,接入jenkins用ant去执行jmx就可以了,至于怎么用可以看我上一篇文章,报告预览:

jmeter 单接口测试方案(接口无业务关联)

jmeter 单接口测试方案(接口无业务关联)

上一篇:[UGUI]滑动列表优化(循环利用)


下一篇:Spring 注解原理(三)@Qualifier @Value