基于jmeter的性能测试(二)

一、性能测试脚本编写

6. 断言结果

6.1 不添加断言时的结果

在这里插入图片描述

6.2 添加断言方法

在对应接口下面点击添加->断言->响应断言
在这里插入图片描述

6.3 响应断言设置

(1) 要测试的响应字段,默认选择响应文本
(2) 模式匹配规则:包括、匹配(相等的意思),如果勾选否后,则是不包括,或不匹配

  • 响应数据包含成功
    在这里插入图片描述
    在这里插入图片描述

  • 响应数据不包含错误
    在这里插入图片描述
    在这里插入图片描述

  • 断言多个,是的关系,即多个断言条件同时满足
    在这里插入图片描述
    在这里插入图片描述

7. Cookie管理器

场景:只有登录之后才能查看个人动态,所以此时需要使用到cookie

7.1 不添加cookie时

不添加cookie时,即使是同一个用户在请求不同的接口,服务器并不能知道当前发起请求的人是谁。所以,虽然同一个人登录了,再次请求查看个人动态时,服务器会提示用户未登录。
在这里插入图片描述

7.2 添加cookie方法

(1) 方法1:在HTTP信息头管理器中添加cookie(不支持多个用户同时登录)

  • 添加HTTP信息头管理器
    在这里插入图片描述

  • 添加cookie
    在这里插入图片描述

  • 结果运行
    在这里插入图片描述

(2) 方法2:添加HTTP cookie管理器(在线程组里面添加,添加位置任意,不需要做任何配置)
在这里插入图片描述
在这里插入图片描述

Cookie管理器的作用:会获取发起登录请求时的cookie信息,当同一个人再次发起请求(比如查看个人动态)时,cookie信息就会被传入。关联纽带是同一个用户。

注意:登录与其他请求需要在同一个线程组内

8. 线程组的线程属性

(1)线程数
(2)Ramp-up period决定多长时间启动所有线程,如果有5个线程,ramp-up period是10秒,则每隔2(10/5)秒启动一个线程。如果ramp-up period是0秒,则jmeter会立即建立所有线程。
在这里插入图片描述

  • 构造用户的间隔时间(秒)=Ramp-up period/线程数,用户构造完成后会立马发起请求
    在这里插入图片描述

(3) 循环次数
Sample time:响应时间
在这里插入图片描述

永远循环:谨慎操作!!!操作不当可能会让电脑卡死,最后只能关机重启
(4) 调度器
调度器一般在循环次数为永远时生效
优先级:启动时间/结束时间的优先级比持续时间/启动延迟低,即如果4个选项均填写了内容,则默认持续时间/启动延迟选项设置生效,启动时间/结束时间设置不生效。

  • 情况1:设置启动时间和结束时间
    在这里插入图片描述

请求过程:1-1先请求多次,直到2秒(设置的是每隔2秒构造一个用户)后1-2加入,此时1-1和1-2同时请求,以此类推,最后1-1,1-2,1-3,1-4一同请求
在这里插入图片描述

  • 情况2:设置启动延迟和持续时间
    在这里插入图片描述
    在这里插入图片描述

9. 并发测试

9.1 假并发

并发的定义不统一:

  • 有的认为10个线程1秒内完成算是并发
  • 有的认为1000个线程1秒内完成算是并发,但有时候做不到(因为耗费的是电脑资源
  • 有的认为设置为0秒认为是并发。
    以上3种都是假并发,如果要求不严格也可以,但不建议这样使用。
9.2 真并发

真正的并发需要使用同步定时器,这是最接近真实情况下的并发
在这里插入图片描述

  • 并发人数:只有用户数构造完后才会一起去请求这个接口,5个人1组,只要5个用户构造好之后就会并发请求
  • 超时(毫秒):
    • 设置10秒时,如果10秒都还没有构造完5个人,则让已经构造好的人先请求,这个10秒是从这一组人的第一个人产生时开始计时的。
    • 如果超时时间设置过短,如设置3秒,实际构造完5个人需要5秒,此时会变成3人一组同时请求
    • 设置为0时表示永不超时,会死等第5个人构造完才会开始请求。
      在这里插入图片描述

每0.1秒构造一个用户,10秒内构造100个用户,构造完成后同时去请求登录接口
在这里插入图片描述

10. 接口关联性-正则表达式提取器

有关联的接口:A接口测完后的数据要给B接口使用

举例:考试系统中要删除一个用户,需要先获取查询到的用户id,再根据用户id进行删除操作。
(1) 添加正则表达式提取器
需要在某个接口后面添加正则表达式提取器
在这里插入图片描述

  • 引用名称:变量名,任意取名称。

  • 正则表达式:填写要匹配的正则表达式

  • 模板:一般是一个字段使用1个模板,直接使用 1 1 1,支持写多个。

  • 匹配数字:1代表取匹配到的第1个,2代表取匹配到的第2个,0代表随机

  • 缺省值:默认值,如果取不到时给一个默认值
    在这里插入图片描述

  • 正则表达式的获取
    .+? 表示匹配任意符合的字符串,将变量修改成.+?,注意:在填写正则表达式时,应加括号,即(.+?)
    在这里插入图片描述

(2) 使用正则表达式代替需要的变量,看是否能够成功获取变量值(此处需要使用id)
在这里插入图片描述
在这里插入图片描述

11. 接口关联性-json表达式提取

如果已经是前后端分离,返回的已经是一个json数组,则可以使用json的方式进行解析,更加精准。
(1) 添加json Extractor
在这里插入图片描述在这里插入图片描述

(2) 获取json表达式
把返回的json体看做1个Python的字典,以{}表示,整个json体是一个大字典,以 代 替 , 需 要 字 典 里 的 i d , 可 看 到 i d 在 l i s t 列 表 中 , l i s t 列 表 在 r e s p o n s e 字 典 里 面 , 则 使 用 代替,需要字典里的id,可看到id在list列表中,list列表在response字典里面,则使用 ididlistlistresponse使.respons.list[0].id表示,访问列表的元素使用下标,从0开始
在这里插入图片描述

(3) 将json表达式填入json extractor
(4) 运行请求
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓晓白的软件测试进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值