设置变量

TestPlane中设置变量

常用的变量,比如token值或者ip地址
JMeter 变量,上下游传参 - 图1
定义变量
JMeter 变量,上下游传参 - 图2
另外一种方式是在线程组中 添加用户定义的变量。
TestPlane用户定义的变量相当于全局变量,所有线程组都共用。如果测试计划中定义的变量与用户定义的变量,变量名一样,使用 【用户定义的变量

引用变量

在jemter中通过 ” ${变量名} “的方式来引用变量的是使用
JMeter 变量,上下游传参 - 图3

上下游传参

新建话题成功之后,将话题的id设置为变量,后面收藏话题的时候需要使用到这个话题的id。需要做上下游传参。

在查看结果树 选择 【 JSON Path Tester】:验证提取的值是否正确需要和结果树联合使用
image.png
编写json 提取器路径
image.png
根据服务器返回的结果。要取 topic_id 对应的值, 表达式为 $.topic_id

  • $ 表示整个服务器返回的结果 类似于 postman种 (var jsondata = pm.response.json();)

image.png

JSON提取

json提取器提取变量

在新建主题上—【右键】—【添加】—【后置处理器】—【json提取器】
JMeter 变量,上下游传参 - 图7
输入对应变量名和对应的JSON路径JMeter 变量,上下游传参 - 图8
JMeter 变量,上下游传参 - 图9提取变量之后,在下游接口中 使用变量 JMeter 变量,上下游传参 - 图10执行查看结果
JMeter 变量,上下游传参 - 图11可以看到能够提取到对应的值。JMeter 变量,上下游传参 - 图12

复杂的类型数据的json提取器

主题首页返回的数据有很多。
JMeter 变量,上下游传参 - 图13
需要将第一个id提取出来
JMeter 变量,上下游传参 - 图14
表达式:

  1. $.data[0].id

JMeter 变量,上下游传参 - 图15
主题详情中引用这个变量:
JMeter 变量,上下游传参 - 图16JMeter 变量,上下游传参 - 图17

基本的语法的使用

基本使用,使用$.的方式来定位元素
使用的数据如果服务器返回的结果有很多,可以通过指定索引值的方式来做

  • $.subjects[-2].title -2表示倒数第二个 也可以用 -1 表示倒数第一个
  • $.subjects[].title 表示匹配所有,找到所有符合的条件

    根据条件过滤

    ```javascript eg:[?(@对应的条件)]

比如查找评分为9.0的电影标题

$.subjects[?@.rate==’9.0’].title

比如查找评分大于等于9.0的电影标题

$.subjects[?(@.rate>=’9.0’)].title

  1. <a name="JzbOc"></a>
  2. ### 多个条件过滤
  3. ```javascript
  4. # 多个条件之间入股是并且的关系 &&
  5. 评分大于等于8分 并且 cover_y 的值大于3500 的电影标题
  6. $.subjects[?(@.rate>='8.0' && @.cover_y>3500)].title
  7. # 多个条件之间如果是or关系,使用 ||
  8. 评分大于等于8分 或者 cover_y 的值大于3500 的电影标题
  9. $.subjects[?(@.rate>='8.0' || @.cover_y>3500)].title

调试取样器

提取的变量可以通过调试取样器来查看

添加调试取样器

在线程组上右键添加
JMeter 变量,上下游传参 - 图18
在jmeter个被版本中
【线程组】— 【右键】— 【添加】— 【取样器】— 【Debug Sampler】
JMeter 变量,上下游传参 - 图19
运行的时候可以看到对应的变量值。
JMeter 变量,上下游传参 - 图20
主要用来进行查看变量的是否提取正确的值