JMeter+Scanner类实现短信验证码处理方式

发表于:2021-6-04 09:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:掘金

  背景:在接口测试中,时常会遇到短信验证码的获取及校验;一般的方法是:建议与开发沟通,设置万能验证码或是屏蔽校验逻辑代码,如果想挑战一下技术,那么就需要自己动手编写代码,这里主要介绍java的Scanner类来与jmeter进行交互输入验证码。
  1、例一:两个接口请求,一个请求验证码返回,一个输入验证码校验,(这种情况只需关联即可)脚本结构如下:
  tips:上面两种情况模拟正确和失败场景,jmeter场景设计,接口请求一般不会把验证码放在响应参数,这样是不安全的。
  2、接下来例二:同样是两个接口,做的事情也一样,只有一个问题,验证码从哪里来?数据库?程序发送短信功能,在测试过程中,短信会发送到手机,同样也会入库(只考虑入库情况,因短信功能模块不同,不确定渠道商的短信处理方式)。先讲JMeter-通过jdbc元件从数据库获取验证的方式,脚本结构如下:
  tips:脚本结构与上面比较,多了一个jdbc配置元件,json提取器换成了jdbc后置处理器;code的获取方式发生了改变。
  3、再来讲JMeter脚本通过beanshell导入Scanner类编码实现从控制台获取code来校验,脚本结构如下:
  tips: 通过一个beanshell取样器编写脚本,beanshell后置器会在java request之前执行(仅此①例)。以下附上beanshell代码:
  //beanshell中导入Scanner扫描类
  import java.util.Scanner;
  //new一个扫描对象
  Scanner scanner=new Scanner(System.in);
  //给vars使用,所以给String类。亦或int类型,使用nextInt()方法
  String messagecode=scanner.next();
  //vars字符串的赋值,如果后面的不是String类型,就需要转toString()
  vars.put("code",messagecode);
  //关闭扫描流
  scanner.close();
  4、以上是JMeter接口测试获得短信验证码的多种处理方式,为了安全起见,程序设计短信验证码是不会从接口返回的。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号