51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3152|回复: 0
打印 上一主题 下一主题

[转贴] Jmeter性能测试实现不同的用户登录

[复制链接]
  • TA的每日心情
    擦汗
    昨天 08:46
  • 签到天数: 981 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-6-28 09:27:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     思路:以cms登录接口为例,使用随机函数添加不同的可登录用户,然后用正则表达式获取到可登录的用户名,在把可登录的用户进行登录,形成循环实现不同的用户登录,进行并发。
      使用jmeter测试添加用户,查询用户,登录三个接口的性能
      1.打开jmeter,创建线程组调通添加用户的接口
      协议:http
      服务器名称或ip:192.168.195.130(部署cms的本地ip)
      端口号:8080
      方法:post
      添加用户的接口路径:/cms/manage/saveSysUser.do
      contentencoding:utf-8
      在jmeter的选项中选择函数助手对话框选择__RandomString函数进行如下设置目的是为了生成随机用户。

      设置好后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

      添加察看结果树
      添加SummaryReport
      线程组设置10个循环1次
      运行结果如下:

      SummaryReport结果如下:

      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条用户信息:

      添加正则表达式获取查询到的userAccount的值具体设置如下:

      正则表达式详解
      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)
      引用名称:
      其他地方引用时的变量名称,名称只能是一个,引用方法:${变量名称}
      正则表达式:
      数据提取器,一般简单的通用语法就是:左边界(.*?)右边界,左右边界就是为了能准确定位到想匹配的内容
      具体语法如下:

      提到正则表达式,必须要说一下匹配的两种模式:贪婪和非贪婪
      贪婪与非贪婪模式是两种不同的表达式匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配
      模板:
      对应正则表达式提取器类型,样式为:
      $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

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-7-9 07:33 , Processed in 0.071527 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表