接口测试 Jmeter 巧妙搭配 bat 脚本实现无感执行 v 1.0

小鸭子嘎嘎 · 2023年02月28日 · 最后由 tangoliver 回复于 2023年03月01日 · 5998 次阅读

奇思妙想

接口测试,我用 Jmeter 的频率很高,所以,每天使用 Jmeter 之前,都会先手动调用一次获取 token 的接口

步骤:
第一步,打开 Jmeter(期间还要等待 Jmeter 加载,5 秒)

第二步,选择登录脚本 jmx(5 秒)

第三步,点击 “运行按钮”+ 运行过程(5 秒)

可见,我为了获取 token,共计执行三个步骤,耗时 15 秒

那有没有办法,我只需要点击一次运行,就能完成全部步骤?

构思

我们都知道 Jmeter,是可以用命令行执行的

  • jmeter -n -t D:\apache-jmeter-5.5\bin\shop\get_token.jmx

但是,我们也是需要通过三个步骤

第一步,打开 cmd(3 秒)

第二步,输入命令(3 秒)

第三步,等待执行完,手动关闭窗口(5 秒)

可见,我们也是要执行三个步骤,耗时 11 秒

但这仍然不满足我们的要求,就是只需要点击一次

突破

因为我想到了,既然是通过 cmd 命令行执行的,我就联想到了 bat 脚本,我通过一个 bat 脚本,调用一次,jmeter 运行命令,不就可以?

并且,我试试了一次,确实可以,不过,窗口不会自动关闭,以及,窗口会出现在屏幕(这就很烦,哈哈,因为我想实现无感运行)

通过某度,bat 确实可以实现,窗口不显示在屏幕,于是乎

编写 bat 脚本(运行完自动关闭 + 不显示窗口 + 运行 Jmeter 命令)

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
jmeter -n -t D:\apache-jmeter-5.5\bin\shop\get_token.jmx 

实现

为了方便管理,我统一把脚本,放到 Jmeter 目录,然后通过创建快捷方式,放到桌面,这样,我只需要点击一次 bat 脚本,我就可以实现全自动无感获取 token,并且界面也不会显示运行过程,这就很完美了

优化

最后,我还想到了,给系统加个启动项,把这个 bat 脚本,只要电脑一开机,就自动执行一遍,当然,这个我还没去实现,只不过,已经想到了这个步骤(觉得没必要,哈哈)

最后

如果你接口测试都是用的 Jmeter,而且,恰好你的项目,每天都需要获取 token,就可以用到我这个方案

不过,获取 token,我已经集成了自动化方案,就是获取完之后,写入到一个 csv 文件,每个接口,去读取这个 csv 文件,再通过变量的形式,用到这个 token,所以,我只需要执行一次获取 token,所有接口,全部通用。(如果需要这个方案的话,评论区可以交流,下期,出个教程)

共收到 2 条回复 时间 点赞

bat 可以定时执行,只要你电脑开机的

小鸭子嘎嘎 关闭了讨论 03月07日 17:49
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册