博学谷学习记录】超强总结,用心分享|软件测试之性能测试学习笔记(二)

Jmeter优点:开源免费、体积小,Loadrunner优点:支持用户量多,报表精度高、支持IP欺骗

由于Jmeter开源免费,与LR功能基本一致,所以在公司中一般选择Jmeter进行性能测试

Jmeter目录结构:

bin目录:存放可执行文件和配置文件

printable-docs:存放用户手册

lib目录:Jmeter运行时依赖的Jar包

docs目录:存放Jmeter 接口文档

Jmeter的元件和组件

元件类型:

线程组:模拟用户

取样器:发送请求

前置处理器:在取样器之前执行,对请求中的参数进行预处理(例如:赋值) —— 相当于

postman的前置请求

后置处理器:在取样器之后执行,对响应中的结果进行处理(例如:提交响应字段)—— 相

当于postman的test

定时器:等待sleep

监听器:日志、查看结果

配置元件:定义参数

断言:对于结果进行检查

测试片段:类似于定义的类,不单独运行,只供其他脚本调用

元件的执行顺序:

写脚本的顺序:定义参数 —— 对请求参数进行赋值 —— 发送请求 —— 收响应 —— 提取响

应中的字段 —— 断言响应中的字段 —— 观察运行结果

元件执行顺序:配置元件 —— 前置处理器 —— 取样器 —— 后置处理器 —— 断言 —— 监听器

如果一个作用域下,有多个相同的元件时(例如:多个取样器),按照从上到下的顺序执行

Jmeter基本组成

线程组

分类:普通线程组(可以并行或者串行执行)、setup线程组(先执行)、teardown线程组(后执行)

参数:

线程数、ranm-up time、运行次数、运行时间、延迟时间

HTTP请求

参数:协议、域名/IP、端口、请求方法、URL路径、编码格式、参数

查看结果树

Jmeter参数化

用户定义的变量:每个用户每次读取的变量值都完全相同

用户参数:不同用户读取的变量值不同,但是同一用户在多次循环时读取的变量值是一致的

CSV数据文件:不同用户读取的变量值不同,同一用户在多次循环时读取的变量值也不同

函数:每次执行读取的变量值都不同,不需要提前定义数据(适用于对数量值无明确要求,只要求不同)

配置:

设置:每种不同

引用:${参数名}

断言

响应断言

使用范围:HTTP消息的任何格式的响应

参数配置

需要断言的字段:文本内容、响应码、响应头、请求URL、请求头、请求体

断言的方式:等于/包含、非、或、和

需要断言的数据(预期结果)

Json断言

使用范围:响应消息为JSON格式的响应

参数配置:

JSON路径:$.开头

需要断言的数据(预期结果)

断言持续时间

使用范围:对请求的响应时间进行断言

参数配置:

预期响应时间(单位:ms):当时间响应时间超过该值时会报错

关联

线程组内的关联(通过后置处理器实现):

正则表达式提取器

使用范围:适用于任何格式的响应数据

参数配置:

参数名:提取出来的数据要保存的变量名

正则表达式:左边界(.*?)右边界

模板:$1$(代表提取正则表达式中第1个括号的内容)

值:-1(返回全部的值),n(返回列表中第n个匹配上的值)

引用:

在后续请求中引用提取器中定义的参数名:${参数名}

xpath提取器

使用范围:适用于HTML格式的响应数据

参数配置:

参数名:提取出的数据要保存的变量名

xpath路径:定位某个页面元素的路径

值:-1(返回全部的值),n(返回列表中第n个匹配上的值)

引用:

在后续请求中引用提取器中定义的参数名:${参数名}

JSON提取器

使用范围:适用于JSON格式的响应数据

参数配置:

参数名:提取出的数据要保存的变量名

JSON路径:定义到JSON字符串中某个值的路径

引用:

在后续请求中引用提取器中定义的参数名:${参数名}



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。