ant+jmeter中build.xml是干什么用的_JMeter 接口自动化测试篇 31

Cookie 传递 (绝对干货)补遗一

好久好久没有分享了,哪怕没有人看我觉得也就当作是自己工作中知识点的积累吧。以前遇到过这个问题,但没有记录下来,最近又遇到了,觉得还是非常有必要记录一下,以免后面又忘记也无从入手。

言归正传,开始讲问题,需求如下:

1. 网站需要登录然后才能进行后续的操作

2. 登录之后网站是会通过session id 或者 cookie来判断客户端的状态,如果没有或者失效则需要用户重新登录

3. 网上大把的资料都是用两个线程组来进行cookie的传递,那样通过界面来执行大家是不一定会发现这个问题-------问题1,等一下说

4. 能否使用一个线程组就解决传递的问题------问题2

由于不能用具体的登录网站来说明,我们就用两个接口的调用来讲解,其实道理是一样的。

我们先说问题1

我模拟一下两个接口的请求

d3f5c4b6458312912f8384772af36293.png

看到这个截图,大家可能会懵,能说明什么呢?大家一定忘记了,我在以前的分享中有讲解过。线程组的执行顺序是不固定的,也就是说获取cookie的请求可能是在request之后执行,那网上的那些文章为什么又能执行正确呢?

大家需要先把配置文件jmeter.properties修改一下:

0c384e912f03064da2b99fe6466c466a.png

大家可以看一下网上的文章,基本都是使用以下这个函数

${__setProperty(newPHPSESSID,${PHPSESSID},)};

这个函数我在变量(属性)相关文章中做过讲解。这个是对属性操作的函数,会存在属性中,其他的线程组能够进行调用。调用的函数如下:

${__property(newPHPSESSID,,)}

只有属性才能跨线程组进行调用,因此网上的文章都是用这个。但正如我上面的截图说的,可能会出现先后执行的问题,可能导致第一次无法取到值的情况。那为什么说第一次无法取到呢?那是因为只要写到属性中,只要不关闭JMeter,这个属性就会一直存在。我用截图来说明一下。

获取城市信息,变量名为r_city

3d2efe830f62f44109057215bb58af29.png

把变量r_city用名称city存到属性中

d5cc81423420d87fad3b4e6c9a63393d.png

把属性写入了

5493485051d37c84aeaf0415d1b154a2.png

我把city换个名字,再看一下是否原先的city还在

d95db4e7825df4b764466e047aedaa02.png

5bb5baf1a5b32fb868309cb9363da81f.png

大家这样就能够清楚了吧,为什么网上的能够正确跑通,而自己要两次或者几次。

如何解决这个问题呢?

其实就是让cookie这个请求先跑,大家有没有想到什么?那就是用setUp Thread Group

5cef52ee8c90b0ce74b2f89ef7b29b6c.png

把要获取的内容都放在这个线程组中执行就可以了。由于我的请求不带cookie,只能给个截图,大家参考写法,做法都是一样的。

53f227ad31c38ca6e49c06fa307eeca3.png

然后我们说第二个问题,是否能够合在一个线程组里跑呢?答案肯定。

只需要按照下面的目录结构就可以解决。

36cb0caa6b2e82c2ae9928be610fcdc0.png

再回过头说一下,我为什么会遇到这样的问题。

是因为我不只是用图形化界面跑脚本,还用ant进行批量执行脚本。图形化界面可以成功,但ant执行却总是出错,就展开了研究。也算是花了一两个小时吧,还有一些详细的内容及知识点我就不一一展开了,按照我上述的方法就可以解决问题。

最后祝大家新年快乐。

做IT不挨踢,立志成为一个精致的IT大叔。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值