通过案例带你轻松玩转JMeter连载(31)

简介: 通过案例带你轻松玩转JMeter连载(31)

4 查看新版本中商品详情接口测试脚本操作步骤



在新的电子商务被测软件,商品详情是用读入json文件来实现的。格式如下。


{
    "price": "¥238.0元",
    "url": "/static/image/1.jpg",
    "page": "88",
    "name": "正山堂茶业 元正简雅正山小种红茶茶叶礼盒装礼品 武夷山茶叶送礼",
       "desc":"生产许可证编号: SC11435078200021产品标准号: GB/T13738.2-2008厂名: 福建武夷山国家级自然保护区正山茶业有限公司厂址: 武夷山市星村镇桐木村庙湾厂家联系方式: 4000599567配料表: 正山小种红茶储藏方法: 干燥、防潮、防晒、避光、防异味保质期: 1095食品添加剂: 无产品名称: 元正正山堂 元正 正山小种 简雅礼盒净含量: 250g包装方式: 包装包装种类: 盒装品牌: 元正正山堂系列: 元正 正山小种 简雅礼盒茶种类: 正山小种级别: 特级生长季节: 春季产地: 中国大陆省份: 福建省城市: 武夷山市食品工艺: 小种红茶套餐份量: 1人套餐周期: 1周配送频次: 1周1次特产品类: 正山小种价格段: 200-299元"
}


1)右键点击循环控制器,在弹出菜单中选择“添加->取样器->HTTP请求”。按照图10中进行设置。

image.png

图10 新版本查看商品详情HTTP请求


  • 修改名称:查看商品详情(new)。
  • 端口号:8080。
  • 请求方式:GET。
  • 路径:/sec/48/good.json。
  • 自动重定向。


2)右键点击商品详情(new)HTTP请求,在弹出菜单中选择“添加->断言->JSON断言”。按照图11中进行设置。

image.png

图11 断言good_name


  • 修改名称:断言good_name。
  • Assert JSON Path exists:$.name。关于JSON Path的用法可以到网上查看相应的资料。
  • 选择Additionally assert value(附加断言值)。
  • Expect Value:正山堂茶业 元正简雅正山小种红茶茶叶礼盒装礼品 武夷山茶叶送礼。


我们将在第7.4-1节对JSON断言进行更深入的介绍


3)运行,测试保证配置无误。


对于JSON格式可以使用JSON断言元件来验证。我们在有的时候需要把JSON中的数据提取出来。JOSN提取器和JSON JMSPath提取器做了两个元件可以完成这个功能。JSON提取器可以使用JSON-PATH语法从JSON格式的响应中提取数据。JSON JMESPath Extractor作为5.2版本之后加入的后置处理器,其功能与JSON提取器类似,都是对JSON格式的返回数据进行提取,但使用的语法不同。JSON JMESPath Extractor使用JMESPath查询语言从JSON结果中提取值。我们将在第3-2节、第3-3节对JOSN提取器和JSON JMESPath Extractor进行介绍,在第3-4节中对于二者区别进行更深入的探讨。


4)右键点击商品详情(new)HTTP请求,在弹出菜单中选择“添加->后置处理器->JOSN 提取器”。按照图12中进行设置。


image.png

图12获取图片路径


  • 名称:获取图片路径
  • Apply to:Main sample only。
  • Names of created variable:good_url,给获取的字符串存储在这个变量名中。
  • JSON Path express:$.name。
  • Match No。(0 for Random):1,表示匹配的第一个。
  • Default Value:null。


下面我们用JSON JMESPath Extractor来获取商品的单价。


5)右键点击商品详情(new)HTTP请求,在弹出菜单中选择“添加->后置处理器->JSON


JMESPath Extractor”。按照图13中进行设置。


image.png

图13 获取商品的单价


  • 名称:获取商品的单价。
  • Apply to:Main sample only。
  • Names of created variable:good_price,给获取的字符串存储在这个变量名中。
  • JMESPath express:$.price。
  • Match No。(0 for Random):1,表示匹配的第一个。
  • Default Value:null。


最后我们用BeanShell写个断言,验证获取的名称和单价是不是我们所希望的。


6)在商品详情(new)HTTP请求下建立BeanShell断言,界面如图14所示。


image.png

图14 断言good_url和good_price


建立的脚本如下。

//获取系统变量
String good_url = vars.get("good_url");
String good_price = vars.get("good_price");
//判断返回值是否和预期一致
Failure = false;
if (! good_url.equals("/static/image/1.jpg")){
       Failure = true;
       FailureMessage = "good_name信息与预期不符合";
}if(! good_price.equals("¥238.0元")){
       Failure = true;
       FailureMessage = "good_price信息与预期不符合";
}


7)运行,保证结果是否正确。
可以看出先利用“获取商品名”和“获取商品的单价”获取变量,再通过BeanShell建立断言,完全可以用JSON断言来取代,本节这么安排,主要是帮助读者了解一下JOSN 提取器和JSON JMSPath提取器这两个元件的使用方法。

目录
相关文章
|
Java 测试技术 API
通过案例带你轻松玩转JMeter连载(49)
通过案例带你轻松玩转JMeter连载(49)
250 1
通过案例带你轻松玩转JMeter连载(49)
|
存储 Linux
通过案例带你轻松玩转JMeter连载(60)
通过案例带你轻松玩转JMeter连载(60)
179 0
通过案例带你轻松玩转JMeter连载(60)
|
算法
通过案例带你轻松玩转JMeter连载(59)
通过案例带你轻松玩转JMeter连载(59)
232 0
通过案例带你轻松玩转JMeter连载(59)
|
XML JavaScript Java
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(58)
128 0
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(57)
通过案例带你轻松玩转JMeter连载(57)
128 0
通过案例带你轻松玩转JMeter连载(57)
|
存储 索引
通过案例带你轻松玩转JMeter连载(56)
通过案例带你轻松玩转JMeter连载(56)
117 0
通过案例带你轻松玩转JMeter连载(56)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(55)
通过案例带你轻松玩转JMeter连载(55)
165 0
通过案例带你轻松玩转JMeter连载(55)
|
存储 监控 数据可视化
通过案例带你轻松玩转JMeter连载(54)
通过案例带你轻松玩转JMeter连载(54)
157 0
通过案例带你轻松玩转JMeter连载(54)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(53)
通过案例带你轻松玩转JMeter连载(53)
137 0
通过案例带你轻松玩转JMeter连载(53)
|
JSON 监控 数据可视化
通过案例带你轻松玩转JMeter连载(52)
通过案例带你轻松玩转JMeter连载(52)
199 0
通过案例带你轻松玩转JMeter连载(52)