51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1684|回复: 4
打印 上一主题 下一主题

Jmeter提取动态列表最后一个值

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2020-10-19 10:36:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    在用[url=]Jmeter[/url] 做[url=]接口测试[/url]时,我们经常会遇到,一个接口返回一个JSON 串,在这个JSON 串中,某个节点的值是一个列表,而且这个列表的长度是动态变化的。如:

    获取用户列表,用户信息是个列表,类似的接口,在企业中非常常见,如果我们在接口中没有传递翻页参数时,这个列表的长度往往都是不固定的,随时变化的。
      ·如果你只想获取列表中已知索引位置的某个参数值,这个很简单,用个JSON提取器,或者用正则提取器 + 指定索引号,都能如愿提取出来。
      ·如果想要提取列表最后一个索引位置某个参数的值,怎么办呢?是不是,就用个‘-1’的索引号,就能解决呢?
      你是不是,也有这样一个问题?你是不是也是这样想的呢?
      然后......
      然后你干嘛了?你发现你用‘-1’实现不了,你又去[url=]百度[/url],百度告诉你,用 Beanshell,写一堆你不知所云的‘天书’(Java 代码)。你期望美梦成真(因为问题很简单,杀鸡已经用上了牛刀了),但是,理想很美好,现实很骨干,你的辛苦付出并没有获得应有的回报。老天啊,你不是耍我吧,一个这么简单的问题,你搞了我一整天啦,来个人,帮我把这些写代码忽悠人的都 ‘X’了吧(此时,你是不是怨声载道)。
      天涯何处不相逢,都是沦落人啊!
      只是,我可能‘山重水复疑无路,柳暗花明又一村’,发现了个‘隧道’
      ·正则 + 关联函数 获得动态列表最后一个索引位置的某个参数值
      先用正则提取器出所有的预期参数的值(如:我想提取 data 列表中所有 id 的值)


    此时,在调试取样器中,我们将看到如图:

    注意图中重点,有一个 ‘id_matchNr'=***,这是什么呢?这个就是匹配结果总数量,也就是说,这个值,告诉了我们列表的数量(前提是,正则表达式没有错)。看到了列表总长度,想到了什么?是不是直接用这个值作为列表索引,就能获得最后一个参数值了! bingo,思路有了,开干!
      关联函数__v,

    1.   KaTeX parse error: Expected group after '_' at position 10: {\_\_V(id_
    复制代码
    {id_matchNr})} ${id_matchNr}是得到列表最大值,用一个关联函数,就得到列表最后一个的参数值。 注意: 列子中的’id' 是我们正则提取器中的存储“引用名称”
      验证:把关联函数

    1. KaTeX parse error: Expected group after '_' at position 10: {\_\_V(id_
    复制代码
    {id_matchNr})},放入你需要的地方,运行后,查看该参数的值,再把列表拷贝出来,搜索看参数值是不是最后一个。
      到此,我们就完成了列表最后一个值的提取和使用及验证。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-31 08:59
  • 签到天数: 975 天

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2020-12-25 09:31:17 | 只看该作者
    习惯用json了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-3-24 09:39
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
    发表于 2020-10-28 17:09:24 | 只看该作者
    JSON提取器表达式取-1即可一步到位  这个太麻烦了  已经不是杀鸡用牛刀  而是山路十八弯了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2020-10-22 11:07:27 | 只看该作者
    如果返回值是JSON格式,我感觉还是用JSON提取器方便
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 11:23 , Processed in 0.067293 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表