设置变量

Test Plane 中设置变量

常用的变量,比如token值或者ip地址
image.png

定义变量
image.png
另外一种方式是 添加用户定义的变量。
用户定义的变量可以在不同的线程组中使用。如果测试计划中定义的变量与用户定义的变量,变量名一样,使用 【用户定义的变量

引用变量

在JMeter 中 通过 ${变量名} 的方式来引用变量。
image.png

上下游传参

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

在查看结果树 选择 【 JSON Path Tester】
image.png
编写json 提取器路径
image.png
根据服务器返回的结果。要取 topic_id 对应的值, 表达式为 $.topic_id

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

image.png

json提取器提取变量

新建主题上 —【右键】—【添加】—【后置处理器】—【JSON提取器】
image.png

输入对应的变量名和对应的json路径
image.png

image.png
提取变量之后,在下游接口中 使用变量
image.png

执行查看结果
image.png
可以看到能够提取到对应的值。
image.png

复杂类型数据 json 提取器

主题首页返回的数据有很多。
image.png
需要将 第一个 id 提取出来。
image.png
表达式为

  1. $.data[0].id

image.png
主题详情中引用这个变量
image.png

image.png

基本使用

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

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

    根据条件过滤

    [?(@对应的条件)]
    比如查找评分为9.0的电影标题 ```python $.subjects[?(@.rate==’9.0’)].title

比如查找评分大于等于9.0的电影标题
```python
$.subjects[?(@.rate>='9.0')].title

多个条件过滤 && 并且

多个条件之间如果是并且关系 &&
评分大于等于8分 并且 cover_y 的值大于3500 的电影标题

$.subjects[?(@.rate>='8.0' && @.cover_y>3500)].title

多个条件过滤 || 或者

多个条件之间如果是or关系,使用 ||
评分大于等于8分 或者 cover_y 的值大于3500 的电影标题

$.subjects[?(@.rate>='8.0' || @.cover_y>3500)].title

调试取样器

提取的变量可以通过调试取样器来查看。
使用方式

添加调试取样器

在线程组上右键添加
image.png
在JMeter 个别版本中
【线程组】—【右键】—【添加】—【取样器】—【Debug Sampler】
image.png

运行的时候可以看到对应的变量值。
image.png
主要用来进行查看变量是否正确提取到。