性能测试:Jmeter压测过程中的短信验证码读取

目录

问题背景

解决思路

实现方法

[1. 建立JDBC连接](#1. 建立JDBC连接)

[2. 使用JDBC请求获取验证码](#2. 使用JDBC请求获取验证码)

[3. 使用正则将验证码提取并使用](#3. 使用正则将验证码提取并使用)

总结:


问题背景

现如今国内的大部分软件或者网站应用,普遍流行使用短信业务,比如登录、注册以及特定的业务通知等。

对于这些业务,在使用Jmeter进行性能测试的过程中,就会需要自动获取和填入短信验证码,否则性能流程无法进行下去。

由于绝大多数的系统其短信验证码并不会在接口返回中,因此如何获取短信验证码是一个问题。

最简单的做法,是让开发在测试环境将验证码写死,在测试过程中固定使用静态验证码字串。

不过求人不如求己~也是出于尽量贴近真实用户场景的目的,更合适的做法还是通过技术手段动态获取并填写短信验证码。

解决思路

大多数应用的短信验证码都是通过第三方服务来发送的,如前文所言一般不会通过本地接口返回。

但是但凡设计过关的系统应该会将短信验证码存留于数据库当中进行留底和备份。

因此我们可以通过Jmeter去连接数据库,并通过合理的逻辑获取相应的验证码。

通常我们使用Jmeter更多的是测试HTTP和FTP等协议,但其实除这些之外,Jmeter还支持许多其他种协议,JDBC就是常见的一种。

因此以上需求应该完全能够实现。

实现方法

1. 建立JDBC连接

在Jmeter测试计划中,添加配置元件-JDBC连接配置(JDBC Connection Configuration),用于管理数据库连接。

2. 使用JDBC请求获取验证码

在线程组中,添加取样器-JDBC请求,进行数据库查询。

取到的结果:

3. 使用正则将验证码提取并使用

以上提取到的数据库记录中,只有969386是我们需要的验证码,因此需要用正则表达式提取器将他提取出来:

到此,后续的请求使用${mcode}就可以使用获取到的验证码继续测试了。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

相关推荐
消失的旧时光-19431 小时前
SQL 第五篇:SQL 如何真正接入 Spring Boot 项目(企业 Mapper 分层实战)
数据库·spring boot·sql
dfdfadffa8 小时前
如何用模块化方案组织一个可扩展的前端组件库项目
jvm·数据库·python
2301_812539678 小时前
SQL中如何高效实现分组数据的批量更新_利用窗口函数与JOIN
jvm·数据库·python
2501_901200538 小时前
如何实现SQL存储过程存储过程参数标准化_统一命名规范
jvm·数据库·python
运气好好的8 小时前
Golang怎么用embed嵌入SQL文件_Golang如何将SQL迁移文件嵌入Go程序统一管理【技巧】
jvm·数据库·python
念何架构之路9 小时前
MySql常见ORM
数据库·mysql
xcLeigh10 小时前
KES数据库安全、权限、审计实战
数据库·安全·备份·权限·审计·ssl加密·密码策略
zjy2777710 小时前
c++如何实现日志文件的异步落盘功能_基于无锁队列方案【附代码】
jvm·数据库·python
河阿里10 小时前
SQL:深分页问题深度解析
数据库·sql
wang3zc10 小时前
JavaScript中函数声明位置对解析器预编译的影响
jvm·数据库·python