51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4413|回复: 15
打印 上一主题 下一主题

[原创] jmeter正则提取结果为什么不能使用?

[复制链接]
  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2017-3-30 18:10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    需要实现的功能是这样的,1、生成订单后2、把1生成的订单退订,关键词是订单ID(orderId),所以我要从1中把生成的订单ID(orderId),通过正则表达式提取出来(设置参数orderId),在2中作为请求入参(${orderId}),现在出现的问题是,我使用提取出来的orderId去退订的时候找不到订单信息,退订失败;但是如果我不用参数orderId,我直接orderId的值填进去,退订就是成功的;看了两次的请求,入参都是一样的,为啥了?1、通过提取正则变量,订单退订请求如下:
    POST data:
    orderId=SOW201703309858455              //说明:这个我是在请求中把orderId设置为变量${orderId},通过${orderId}的值是SOW201703309858455

    Cookie Data:
    $Version=0; mallJSessionID=71F45C439CC6E8E8AEB32AA4B58B2BB8; $Path=/umall/

    Request Headers:
    Accept-Language: zh-CN
    Content-Length: 26
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
    Connection: keep-alive
    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Content-Type: application/x-www-form-urlencoded


    2、不通过变量,直接把订单的ID写在请求中:
    POST data:
    orderId=SOW201703309858455                          //说明:这个我是在请求中直接把orderId设置为SOW201703309858455

    Cookie Data:
    $Version=0; mallJSessionID=DDE65B7877546F3A3B133043CF1EF2EB; $Path=/umall/

    Request Headers:
    Accept-Language: zh-CN
    Content-Length: 26
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
    Connection: keep-alive
    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Content-Type: application/x-www-form-urlencoded


    比较了两个请求,也没有什么区别不知道为什么1中找不到订单SOW201703309858455 信息,2中可以退订成功
    哪位大神可以解答~~~多谢

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2017-3-30 18:33:32 | 只看该作者
    大概率是因为 正则表达式出问题了,提取错误,加上debug看下提取的数据
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    3#
     楼主| 发表于 2017-3-30 18:40:13 | 只看该作者
    Miss_love 发表于 2017-3-30 18:33
    大概率是因为 正则表达式出问题了,提取错误,加上debug看下提取的数据

    debug后的结果
    JMeterVariables:
    JMeterThread.last_sample_ok=false
    JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@5ca3e662
    START.HMS=182645
    START.MS=1490869605793
    START.YMD=20170330
    TESTSTART.MS=1490870397188
    __jmeter.USER_TOKEN__=合约机 1-1
    cityId=025
    fuka=5394a064030711e7b6b9005056a80569
    heyueji=GDSXP20170108014102
    orderId=SOW201703301293945
    orderId_g=1
    orderId_g0="orderId":"SOW201703301293945"
    orderId_g1=SOW201703301293945
    zhuka=538e9891030711e7b6b9005056a80569
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
     楼主| 发表于 2017-3-30 18:44:46 | 只看该作者
    {"head":{"responseId":"RSP20170330183911000000","status":"000000","responseTime":"2017-03-30 18:39:11","msg":"success"},"body":{"pay":2900.00,"total":2900.00,"limit":0.00,"offlinePay":0,"orderId":"SOW201703301293945","paymentMethod":"123"}}
    我需要的就是把SOW201703301293945提取出来~  这则使用的"orderId":"(.*?)"
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-8-11 08:18
  • 签到天数: 114 天

    连续签到: 1 天

    [LV.6]测试旅长

    5#
    发表于 2017-3-31 08:56:42 | 只看该作者
    没明白,到底是正则表达式还是变量?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
     楼主| 发表于 2017-3-31 09:24:45 | 只看该作者
    puchonghui 发表于 2017-3-31 08:56
    没明白,到底是正则表达式还是变量?

    正则表达式把结果中的orderId值提取出来,下一个流程中用变量引用这个值
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    7#
    发表于 2017-3-31 09:29:51 | 只看该作者
    菜鸟小丸子 发表于 2017-3-30 18:44
    {"head":{"responseId":"RSP20170330183911000000","status":"000000","responseTime":"2017-03-30 18:39:1 ...

    orderId=SOW201703309858455              //说明:这个我是在请求中把orderId设置为变量${orderId},通过${orderId}的值是SOW201703309858455

    把${orderId} 改成${orderId_g1}试试

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
     楼主| 发表于 2017-3-31 10:07:21 | 只看该作者
    Miss_love 发表于 2017-3-31 09:29
    orderId=SOW201703309858455              //说明:这个我是在请求中把orderId设置为变量${orderId},通 ...

    还是不行,报一样的错误,有人说是数据格式的问题,同样的值可能一个是字符串一个是数值型的造成的,但是我不知道要怎么看他们的数据格式
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.10]测试总司令

    9#
    发表于 2017-3-31 10:19:49 | 只看该作者
    菜鸟小丸子 发表于 2017-3-31 10:07
    还是不行,报一样的错误,有人说是数据格式的问题,同样的值可能一个是字符串一个是数值型的造成的,但是 ...

    正则表达式中模板 是怎么设置的呢?好奇怪的问题。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    10#
     楼主| 发表于 2017-3-31 11:07:59 | 只看该作者
    同志们,搞定了,原因就是我没有加定时器导致的,正则的设置和提取都是对的,可能是由于没有加定时器进行延迟造成的,但是我还是不太理解为甚没有延迟会出现这个问题,看请求已经取到值了,感觉既然请求取到值了,不是不用延迟了吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-8-11 08:18
  • 签到天数: 114 天

    连续签到: 1 天

    [LV.6]测试旅长

    11#
    发表于 2017-3-31 13:26:31 | 只看该作者
    菜鸟小丸子 发表于 2017-3-31 11:07
    同志们,搞定了,原因就是我没有加定时器导致的,正则的设置和提取都是对的,可能是由于没有加定时器进行 ...

    你做了什么同步调用了吧?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-9-19 09:36
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    12#
     楼主| 发表于 2017-3-31 14:46:26 | 只看该作者
    puchonghui 发表于 2017-3-31 13:26
    你做了什么同步调用了吧?

    是的~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-8-11 08:18
  • 签到天数: 114 天

    连续签到: 1 天

    [LV.6]测试旅长

    13#
    发表于 2017-4-1 10:29:21 | 只看该作者

    同步调用意味着新的调用和原先的进程同步进行(并行), 当实际业务需要异步处理的时候,同步调用即使加了延迟也是不保险的。。。web应用很多bug都是这么来的。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-6-14 11:31
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    14#
    发表于 2017-4-23 00:52:29 | 只看该作者
    你说的是获取对应的参数值!使用正确表达式!在提问的时候能否带上你的表达式的截图还有对应代码的截图!才好分析问题!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 07:27
  • 签到天数: 2816 天

    连续签到: 4 天

    [LV.Master]测试大本营

    16#
    发表于 2017-4-26 19:41:51 | 只看该作者
    很好的一次讨论过程
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-22 02:29 , Processed in 0.079819 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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