jmeter 使用时间戳去redis获取验证码实现有验证码登录接口测试

jmeter作为一款易学易用的接口压测工具,已经受到大多数啄木鸟同学的青睐。

今天要记录的是一个最简单的登录接口测试,但是又另一部分人头疼不已,只因为  老先生说:自动化止于验证码~~~~~大哭发火


不单是jmeter接口测试工作,即使是Python UI自动化,验证码也是一个难缠的问题,当然对于python已经有比较成熟的图片识别工具 pytesseract.image_to_string(image).

下面介绍一种可以既不用求开发大爷隐去验证码 也不用识别图片的情况。

首先前提是 验证码获取的机制是 根据请求的时间戳 缓存在redis中,当然相当一大部分开发大大都是这么做的。

环境准备:(后续文章介绍)



好了 开始正题。


对于通过时间戳这种问题,原理是请求登录页,在redis中生成一个键值对(time:code),我们要做的就是将这个time保存下来,然后去redis读code,在用这个键值对做登录操作; 那么难点来了,请求中的paramater怎么保存为变量呢~~~我不知道有没有大神会,我是肯定不会了。

那怎么办呢?

好在,对于redis来讲,时间戳的限制一般不会设置那么严格(强迫症的开发大大除外),那么就好办了!!!!!!!!!

我们可以在jmeter外围设置一个全局的时间变量,后续的请求都是用这个变量就行了啊大笑大笑


首先,我们要有一个jar包,这个jar包中就是我们自己写的去redis中获取验证码的方法。(jar包的简单生成会后续介绍http://blog.csdn.net/zike6524/article/details/78132931)

好了,开始我们的工作

1.在我们的测试计划中引入jar包,这个后续会用到的哦

2.新建线程组(不细说)

3.设置时间戳变量,这个用时间获取函数直接获取就行

新建一个beanshell sampler(前后最好养成有debug sampler的习惯)


4.将timer传参进行访问首页地址,以使redis增加一个对应的键值对(time,code)



5.好了 这一步就要用到jar包中的方法了,通过方法getVerifyCode.getCode 获取redis中对应timer时间的value值,也就是验证码;



6.最后通过传入需要的参数将用户名密码,时间戳以及验证码传给服务器进行登录






执行脚本,通过结果数查看,可以看到登陆成功,且返回有效data



至此,我们就可以完成带有验证码的登录接口测试了。

当然这只是基本的实现,实际需要根据不同项目需求加入不同的断言以及不同的监听,以判断接口是否符合需求。


个人拙见,如有不对之处,请多指教。

转载请注明出处



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值