jmeter接口测试-用例数据分离(转载)

以前咱们的用例数据都是配置在 Jmeter Http 请求中,每次须要增长,修改用例都须要打开 jmeter 从新编辑,当用例愈来愈多的时候,用例维护起来就愈来愈麻烦,有没有好的方法来解决这种状况呢?json

  其实咱们能够将用例的数据存放在 csv 文件中,而后经过 csv 文件配置来读取用例中的数据,执行测试。用例数据以下图所示:api

 

用例设计:

  这里以 httpbin 接口为例,建立用例文件:jmeter-testcase.csv测试

  用例名称变量含义:lua

    •   ${caseSeq}:用例编号
    •   ${apiType}:api 类型
    •   ${apiSeq} :api 版本号
    •   ${apiName}:api 名称
    •   ${priority}:优先级
    •   ${url}:api 路径
    •   ${methods}:请求方法
    •   ${parameter}: 请求参数
    •   ${expectValue}:指望值,用于断言

Jmeter 设置步骤:

  1.新建一个线程组,命名为:数据驱动url

  2.建立一个 http 请求默认值,设置以下:线程

 

 

  3.添加一个循环控制器 步骤为:线程组——添加——逻辑控制器——循环控制器。 循环控制器的做用能够控制整个用例循环执行的次数。默认值是 1 根据用例数量能够修改成 4设计

 

  4.在循环控制器节点下建立 CSV 文件设置,具体配置内容以下:3d

 

  5.建立一个 if 控制器,步骤为:线程组——添加——逻辑控制器——if 控制器blog

  if 控制器的做用为根据不一样条件执行不一样的用例,例如这里根据不一样的接口请求类型,分别建立了 GET 和 POST 两个控制器。接口

  GET 设置的条件语句以下:

  条件语句为:"${methods}"=="GET"其中 ${methods}表示引用 csv 中的 methods 中的值。

  参数:

    • Interpret Condition as Variable Expression?:若是这个选项被选中,将不会使用 js 解析;条件表达式的值必须是 true(忽略大小写),这里咱们取消勾选状态。
    • Evaluate for all children:若是选中这一项,在每一个子结点执行前都会计算表达式 

  POST 条件语句设置为:"${methods}"=="POST"

 

 

  6.建立 GET 请求类型的用例以下

 

  用例名称格式:${caseSeq}_ ${apiSeq}_${apiName}

  断言设置以下:${expectValue}引用 csv 中对应的值。

 

  最后添加查看结果树,而后运行能够看到以下运行结果:

 

 

  7.POST 用例设置和 GET 相似,不过参数请求不同,是在 body 中,若是发送的是json格式的参数,须要添加http信息头管理器。另外请求方式为:POST

 

  运行结果以下:

  

  8.最后在线程组添加一个查看结果树,执行能够查看所有用例执行状况。

 

 

小结

 

  经过这样的数据驱动,当面对大量用例时在 jmeter 设置就很是方便,后续的用例维护也很是高效,由于不用在jmeter 一个个去单独修改用例了。

相关文章
相关标签/搜索