前言
准备上架一款聊天app,上架之前准备做一些测试工作,模拟用户进入房间,维持心跳,房间送礼,发言等行为(因为用的第三方im以及声 ,这些都是基于http的),也不是很懂测试,听老大说过一嘴,可以用jmeter,就尝试了下。
安装
直接去官 下载下载地址下载完成之后直接解压。
点击这个文件就可以打开了。
使用
默认会有一个测试计划testplan,可以改名也可以不改,我是懒得改。
创建一个ThreadGroup
一个线程组其实就可以用来测一个接口了。
numberofthreads可以定义开多少个线程(模拟的用户数量),Ramp-upPeriod(inseconds):达到指定线程数所需要的时间。举例:线程数设置为50,此处设置为5,那么
每秒启动的线程数 =线程数50/5=10。loopcount循环次数。
创建一个HTTPRequest
线程组定义了策略,而httprequest就是具体执行的方法了。
protocol定义协议,ip定义域名,port指定端口,post这个下拉框指定请求方法,path指定访问路径,encoding指定编码,bodydata因为指定post的body。
遇到的问题
通过csv文件把需要模拟的用户的token放进去
基本上看下配置就知道怎么回事了,filename指定文件位置,encoding指定编码,variablenames变量名(用分隔符区分–基本上csv文件有多少个字段,定义多少个变量)Delimiter分隔符csv文件一般用,,sharemode就是共享模式了allthread可以分配给所有的线程。
我定义了两个字段,下面我的csv文件。
定义好了变量,我们直接使用${token}的方式就可以获取token了。
设置请求头
最重要的info:G={sign}&s={token},这里的${token}就是上面csv文件里分配的token了,sign一会再解释。
加密签名
使用java代码来执行加密操作。
下面的script提供了一些全局变量,分别ctx估计是context,var就是变量了,log就是日志。
这里就把上面header需要的sign给回填进去了,这样就可以完成验签的工作了,当然我这里写的比较简单。
引入jar包
上面的脚本里面有我们自己写的jar包,需要import进jmeter才能被import。流程如下:
请求结果归档
定时发送
比如我们的心跳接口是需要client每隔5s访问一次,需要定时发送。
我这里写的是30s。
结束语
jmeter有很多功能,我这里只是用来测试接口。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!