前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter+Shell,20分钟部署一整天的性能测试任务

Jmeter+Shell,20分钟部署一整天的性能测试任务

作者头像
用户5521279
发布2019-07-17 11:59:26
7070
发布2019-07-17 11:59:26
举报
文章被收录于专栏:搜狗测试搜狗测试

前几天接到一个性能测试任务,要求对语音识别服务进行性能测试。当拿到任务列表时,眼前的一幕...

没错,就是这样的,要对5种长度的音频,分别在3种不同并发数下进行测试,每一小项要测试15分钟的时间。简单数了数,一共有15项,加上每组之间的间隔时间(考虑到前一项测试可能在服务端存在短暂排队的情况,以及为了便于后期统计服务器资源占用情况,应该至少间隔1-2分钟),那就是要4个小时左右,半天时间应该能测完。

等等,还没完,把列表继续向下拉,惊喜地发现原来测试范围是4个语种(中、英、日、韩),每个语种的要求都是一样的。由于要测完整服务的性能,除了解码器外,还涉及到其他的一些层面,每个语种、每种长度音频、每种并发数都只能分开进行。于是,一个共计60项、长达16个小时的测试任务就这么到手了。

这么多项的测试,如果每一项都手动进行,要耗费很大的精力,而且每隔15分钟左右开始新的一项测试,中间的间隔时间很难把控,会花费更多的时间,那就不是16个小时能测完的了。仔细观察,其实这些小项中很多步骤都是相同的,只是分组数量很多,不免让人想寻求一些简单方便的测试方法,可以让整个测试自动进行。这时我们的测试工具Jmeter以及Linux系统下的Shell就可以发挥作用了。

下面,就来分享两种简单的方法,让我们可以花20分钟时间就部署好这16个小时的测试。

方法一 利用Jmeter线程组启动延迟

在Jmeter(5.1.1)线程组设置的下面有一个Scheduler(调度器),其中包含两个参数:Duration(持续时间)和Startup delay(启动延迟)。Duration这个参数我们平常用得比较多,可以用于限定测试的持续时间。而另一个Startup delay参数在本次性能测试中可以起到关键作用。先来看看有关这个参数的介绍。

Startup Delay表示从当前时刻开始延迟多长时间开始运行

我们可以一次性创建每一项测试所需的Jmeter脚本(这个步骤看似复杂,实际操作起来比较容易,因为脚本主体内容相同,直接大量复制粘贴,对于每项不同的参数修改替换即可,快的话10-20分钟就能搞定全部60个脚本),并为这些脚本设置不同的Startup delay,比如第一个脚本设置0(直接启动),第二个脚本设置1000(单位为s),第三个设置2000,依此类推。

由于要放到linux环境下运行,脚本中路径的设置需要注意(我这里设置的是绝对路径,为了方便的话也可以设置为相对路径),保存log时最好利用Jmeter的__time函数按时间来命名,方便进行区分,也方便观察各项测试的开始时间。

将这些脚本统统放入linux下的测试目录中,直接一个一个依次启动就可以了(可以使用nohup+&方式一并扔到后台去执行)。这样启动的话还是略显麻烦,而且几十个脚本的启动也比较费时间,为了简化操作,我们还可以创建sh脚本,将启动命令全部放进去一次性执行,做到真正的“秒起”。sh脚本的内容大致如下,依然只需要一些复制粘贴的时间。

将上述命令保存为.sh脚本文件(比如test.sh),只需一个命令

代码语言:javascript
复制
./test.sh

全部测试任务开启,OK,可以直接期待十几个小时以后的测试结果了。

方法二 利用Linux Shell的sleep命令

在方法一中,我们在创建每个脚本时都要为他们添加不同的Startup delay,几十个脚本下来也还是会产生几分钟工作量的,不免有些烦躁。于是,这里我们也可以用另一种方式来起到完全相同的作用——直接在sh脚本中添加启动延迟。

在这种方法下,我们在创建Jmeter脚本时无需再设置Startup delay参数,只需稍微修改方法一中的sh脚本,添加sleep命令。

嗯,又是熟悉的复制粘贴操作。sleep 17m表示等待17分钟后再继续执行下一条命令。

同样保存为test.sh,执行./test.sh,可以与方法一获得相似的效果。

小结

通过本文介绍的方法,可以以较少的准备时间来完成大量的工作,对于此类数量较多而流程相似的测试任务有一定借鉴意义。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档