前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过案例带你轻松玩转JMeter连载(31)

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

作者头像
顾翔
发布2021-11-19 14:41:33
5930
发布2021-11-19 14:41:33
举报

4 查看新版本中商品详情接口测试脚本操作步骤 在新的电子商务被测软件,商品详情是用读入json文件来实现的。格式如下。

代码语言:javascript
复制
{
    "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中进行设置。

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

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

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

图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中进行设置。

图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中进行设置。

图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所示。

图14 断言good_url和good_price

建立的脚本如下。

代码语言:javascript
复制
//获取系统变量
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提取器这两个元件的使用方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档