lsekfe 发表于 2021-6-28 09:27:33

Jmeter性能测试实现不同的用户登录

 思路:以cms登录接口为例,使用随机函数添加不同的可登录用户,然后用正则表达式获取到可登录的用户名,在把可登录的用户进行登录,形成循环实现不同的用户登录,进行并发。
  使用jmeter测试添加用户,查询用户,登录三个接口的性能
  1.打开jmeter,创建线程组调通添加用户的接口
  协议:http
  服务器名称或ip:192.168.195.130(部署cms的本地ip)
  端口号:8080
  方法:post
  添加用户的接口路径:/cms/manage/saveSysUser.do
  contentencoding:utf-8
  在jmeter的选项中选择函数助手对话框选择__RandomString函数进行如下设置目的是为了生成随机用户。
http://www.51testing.com/attachments/2021/06/15326880_202106181352491po6S.png
  设置好后parameters传入userAccount=${__RandomString(5,QWERTYUIOPLKJHGFDSAZXCVBNMqwertyiopasdfghjklmnbvcxz1234567890,)}即可
  或者
  bodyData:传入userName=${__RandomString(5,QWERTYUIOPLKJHGFDSAZXCVBNMqwertyiopasdfghjklmnbvcxz1234567890,)}&userSex=1&userMobile=18314933160&userEmail=369608314%40qq.com&userAccount=${__RandomString(5,QWERTYUIOPLKJHGFDSAZXCVBNMqwertyiopasdfghjklmnbvcxz1234567890,)}&loginPwd=154236&confirmPwd=154236
  添加HTTP信息头管理传入Cookie与Content-Type
http://www.51testing.com/attachments/2021/06/15326880_202106181353091dz8T.png
  添加察看结果树
  添加SummaryReport
  线程组设置10个循环1次
  运行结果如下:
http://www.51testing.com/attachments/2021/06/15326880_202106181353341TAHX.png
  SummaryReport结果如下:
http://www.51testing.com/attachments/2021/06/15326880_202106181354091ZFMU.png
  Label:取样器别名
  #Samples:取样器运行次数
  Average:请求(事物)的平均响应时间
  Min:请求最小响应时间
  Max:请求最大响应时间
  Std.Dev:响应时间标准差,标准差越小越好
  Error%:事物错误率
  Throughput:吞吐率,即TPS
  ReceivedKB/s:每秒数据包流量
  SentKB/s:
  Avg.Bytes:平均数据流量
  2.查询用户接口
  协议:http
  服务器名称或ip:192.168.195.130(部署cms的本地ip)
  端口号:8080
  方法:post
  查询用户的接口路径:/cms/manage/queryUserList.do
  contentencoding:utf-8
  添加HTTP信息头管理传入Cookie与Content-Type
  查询接口不需要传参数默认查询第1页10条用户信息:
http://www.51testing.com/attachments/2021/06/15326880_2021061813543011feT.pnghttp://www.51testing.com/attachments/2021/06/15326880_202106181354501IpEB.png
  添加正则表达式获取查询到的userAccount的值具体设置如下:
http://www.51testing.com/attachments/2021/06/15326880_2021061813551312HHm.png
  正则表达式详解
  applyto:
  Mainsampleandsub-samples:作用于父节点取样器及对应子节点取样器
  Mainsampleonly:仅作用于父节点取样器
  Sub-samplesonly:仅作用于子节点取样器
  JMeterVariable:作用于jmeter变量(输入框内可输入jmeter的变量名称)
  要检查的响应字段:样本数据源
  主体:接口响应主体内容,默认选择此项
  信息头:响应头的所有内容
  RequestHeaders:请求头的所有内容
  url:是对sample的url进行匹配,也就是查看结果树里请求内容的第一行url,不包含data里的请求参数
  响应代码:http响应代码,如101,200,302,404,501等
  响应信息:http响应代码对应的响应信息,例如:OK,Found(HTTP/1.1200Ok;HTTP/1.1302Found)
  引用名称:
  其他地方引用时的变量名称,名称只能是一个,引用方法:${变量名称}
  正则表达式:
  数据提取器,一般简单的通用语法就是:左边界(.*?)右边界,左右边界就是为了能准确定位到想匹配的内容
  具体语法如下:
http://www.51testing.com/attachments/2021/06/15326880_202106181355331crXr.png
  提到正则表达式,必须要说一下匹配的两种模式:贪婪和非贪婪
  贪婪与非贪婪模式是两种不同的表达式匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配
  模板:
  对应正则表达式提取器类型,样式为:
  $n$。若模板为:$0$,则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容,
  若模板为:$1$,则对应正则表达式中的第一个(.*?)所匹配的内容
  若模板为:$2$,则对应正则表达式中的第二个(.*?)所匹配的内容
  若模板为$1$$2$,则把2个(.*?)所匹配的内容拼接起来
  匹配数字:
  正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。
  当为0时,随机返回匹配的数据。
  当为1时,表示返回匹配结果数组的第一个元素
  当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量
  在引用时:通过${变量名_1}的方式来取第1个匹配的内容,${变量名_2}来取第2个匹配的内容
  缺省值:
  匹配失败时的默认值。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等。
  3.登录接口
  协议:http
  服务器名称或ip:192.168.195.130(部署cms的本地ip)
  端口号:8080
  方法:post
  添加用户的接口路径:/cms/manage/loginJump.do
  contentencoding:utf-8
  添加HTTP信息头管理传入Cookie与Content-Type
  设置好后parameters传入userAccount=${userAccount}(引用正则表达式名称)
  loginPwd=123456
http://www.51testing.com/attachments/2021/06/15326880_202106181355531N9Lk.pnghttp://www.51testing.com/attachments/2021/06/15326880_202106181356301ymFI.png
页: [1]
查看完整版本: Jmeter性能测试实现不同的用户登录