使用jmeter对聊天软件进行接口测试

前言

准备上架一款聊天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。

遇到的问题

  • 不同的用户有不同的token,怎么给不同的用户分配不同的token
  • 设置请求头
  • 接口有签名校验,怎么通过java代码传递签名
  • 加密的jar包怎么引入
  • 通过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进行处理,非常感谢!

    上一篇 2020年8月6日
    下一篇 2020年8月6日

    相关推荐