Jmeter基础知识(一)

1. 启动Jmeter

MAC启动Jmeter,进入到jmeter的bin目录下 ,运行以下命令

sh jmeter

img

2. 设置为中文版(根据个人喜好)

进入jmeter -bin目录下,找到jmeter.properties 文件,设置language=zh_CN,设置完需要重启Jmeter

img

3. 配置元件-Http Cookie管理器

配置元件(Config Element)用于提供对静态数据配置的支持,Http Cookie管理器可以用来对 HTTP Request Sampler 的 cookie 进行管理

如果想要Jmeter像浏览器一样,保存cookie,那么可以借助“配置元件-Http Cookie管理器”,

(1)若没有 Http Cookie管理器:

img

(2)当我们第一个请求,有了cookie之后,那么“Http Cookie管理器”就会保存这个cookie,给后面的请求用,就像在浏览器里的用法一样

img

4.断言

比较重要的断言主要有:响应断言(Response Assertion)、大小断言(Size Assertion)、持续时间断言(Duration Assertion)

(1)响应断言(Response Assertion)

①响应文本(Test Response)断言

断言内容 --相当于预期结果

img

响应中看到的数据 --相当于实际结果

img

执行脚本后,若实际结果与预期结果不一致,则断言失败

img

②响应代码(Response Code)断言

设置断言,假设Response Code预期应为500

img

实际运行结果,Response Code 为200

img

则断言失败

(2)大小断言(Size Assertion)

验证生成的响应的大小,以字节为单位,这也是吞吐量参数,当我们加负载的时候,若网站处理不过来时,就可能出现有的数据没有加载出来,这时的就不会返回完整的字节大小,当我们加负载时,我们也会参考这个参数,看看是否完全加载出来

imgimg

img

 

(3)持续时间断言(Duration Assertion)-主要用来验证性能指标

当我们在断言中,设置为1000时,代表最大耗时不能超过1000ms

这边为了演示断言出错,持续时间故意设置比较短,方便查看效果

img

断言失败,并给出提示

img

通过“监听器-用表格查看结果”来看下这个sample的持续时间

img

5.接口关联(Json提取器&正则表达式提取器)

我们在进行接口测试时,一般会有业务场景的关联性,接口关联就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。

最常见的比如登录的接口会返回一个token,便于之后其他接口调用时来认证身份,那么这个时候,我们就需要通过接口关联来实现参数传递,最常用的方法有两种,一个是Json提取器,一个是正则表达式提取器

img

(1)Json 提取器

我们先来看下登录接口返回参数中,是否能把pytoken这个值取到,其中$表示根元素,图中$.data.pyToken为Json路径表达式

img

然后在登录接口里添加后置处理器-json提取器,用json path表达式取到得值,放在pyToken这个变量里

N**ames of created variables** :接收值的变量名,自定义

JSON P**ath** expression**:** json path表达式

M**atch** N**o.(0 for Random):**1 代表匹配获取到的第一个值,我们这边只有一个值(0表示随机;n取第几个匹配值;-1匹配所有。若只要获取到匹配的第一个值,则填写1)

D**efault** V**alues:** 缺省值,匹配不到值的时候取该值,可写error也可不写

img

我们也可以使用调试取样器(Debug Sample)来查看pyToken取值是否正确

img

对json提取器取到的值,进行变量引用,格式为${变量名},所以此处为 ${pyToken}

img

(2)正则表达式提取器

运行登录接口,查看响应结果,把需要提取的数据复制出来,然后用正则表达式代替即可

img

"pyToken":"03d8aa93-8f52-471f-8c12-f51a692ae7b5"}}

--> 可以看到黄色部分,我们使用(.+?)进行了替代,因为黄色部分是动态变化的

img

说明:

. 代表:匹配换行符\n之外的任何单字符

+代表:匹配前面的子表达式一次或多次

?代表:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符

关于正则表达式的语法可参考:https://www.runoob.com/regexp/regexp-syntax.html

 

模板(Template)--> $0$ 代表取正则表达式输入项内输入的值,$1$指取第一个括号内的内容,此处即为.+?

匹配数字(Match No.) -->若jmeter在匹配Regular Expression中的值时,匹配出了多项,那么Jmeter是不知道要取哪个值的,所以可以用来指定,比如输入1,即匹配查到的第一个值

缺省值(Default Value) -->默认值,设置默认值,若匹配不到,则使用默认值

 

来来来~~~一起打怪升级吧

公众号

 

个人微信 --> 添加请注明来意 

posted @ 2022-03-02 17:26  会花钱的水晶晶  阅读(68)  评论(0编辑  收藏  举报