练习
基础题:
1、性能测试工具jmeter和Loadrunner有什么区别?进行性能测试时要如何选择?
2、常用的元件有哪些?各自的作用是什么?
3、元件的执行顺序是什么?
4、Jmeter中常见的线程组有哪几种?作用分别是什么?
5、Jmeter有几种参数化的方式?各自的使用场景有什么区别?
提高题:
7、某支付系统,需要用1000个不同的用户登录,并使用不同的测试金额数据访问支付接口?(请概述具体的操作步骤)
先自己思考,再看后续答案效果更佳!!!
答案
基础题:
1、性能测试工具jmeter和Loadrunner有什么区别?进行性能测试时要如何选择?
(1)区别
Loadrunner:工业级的性能测试工具,可以模拟大量用户,并监控性能指标提供报表。
优势:
支持的用户量大 详细的分析报表 支持IP欺骗缺点:
收费体积大 无法定制功能
Jmeter:性能测试工具,Jmeter软件的功能与Loadrunner基本一致。
优点:
免费开源
体积小
可扩展的组件缺点:
不支持IP欺骗分析和报表能力比lr弱
(2)选择jmeter
原因:Jmeter免费 Jmeter能提供的功能与loadrunner基本一致,能满足绝大多数的性能测试需要
2、常用的元件有哪些?各自的作用是什么?
【基本元件】
取样器:发送请求。类似于自动化中的业务测试语句
逻辑控制器:控制元件执行顺序。类似于自动化中的逻辑控制语句
前置处理器:对发送的请求参数进行预处理。类似于自动化中的参数化。
后置处理器:对收到的响应数据进行处理。类似于自动化中获得对应的测试结果。
定时器:等待一定时间。类似于自动化中的sleep语句
测试片段:封装的脚本,供其他脚本调用。类似于自动化中封装的函数
配置元件:测试前的环境及数据配置。类似于自动化中的初始化动作
监听器:查看测试的结果。类似于自动化中的日志和报告。
3、元件的执行顺序是什么?
元件执行顺序:
配置元件 —— 前置处理器 —— 取样器 —— 后置处理器 —— 断言 —— 监听器
如果一个作用域下,有多个相同的元件时(例如:多个取样器),按照从上到下的顺序 执行
4、Jmeter中常见的线程组有哪几种?作用分别是什么?
普通线程组:用于发送业务请求的线程组(受并行、串行配置的影响)
setup线程组:在所有的线程组之前执行(不受并行、串行配置的影响)
teardown:在所有的线程组之后执行(不受并行、串行配置的影响)
5、Jmeter有几种参数化的方式?各自的使用场景有什么区别?
- 用户定义的变量:每个用户每次读取的变量值都完全相同
- 用户参数:不同用户读取的变量值不同,但是同一用户在多次循环时读取的变量值是一致的
- CSV数据文件:不同用户读取的变量值不同,同一用户在多次循环时读取的变量值也不同
- 函数:每次执行读取的变量值都不同,不需要提前定义数据(适用于对数量值无明确要求,只要求 不同)
【拓展】
(1)用户定义的变量:
配置方法1:
配置元件中配置
添加路径:测试计划——线程组——配置元件——用户定义的变量
参数设置:参数名:参数值
在HTTP取样器中应用:${参数名}
线程组下配置的用户定义的变量,在线程组下生效,与测试计划中配置的变量冲突时,以线程组下的为准
配置方法2:在测试计划中配置(全局生效)
(2)用户参数:
使用用户定义的变量时,不同的用户在访问时,读取的参数值完全相同,如果希望每个用户在访问时的 变量不同,可以使用用户参数。
- 添加位置:线程组——前置处理器——用户参数
- 添加用户:可以添加多组用户
- 添加参数:针对每个用户添加多个参数
提高题:
7、某支付系统,需要用1000个不同的用户登录,并使用不同的测试金额数据访问支付接口?(请概述具体的操作步骤)
- 定义CSV数据文件,存放1000个不同的用户账号密码
- 添加线程组,将线程组的线程数设置为1000
- 添加CSV数据文件设置,读取CSV数据文件中的用户账号密码
- 添加HTTP请求(用户登录的请求),在请求中引用CSV数据文件设置中的用户账号、密码的参数
- 添加HTTP请求(支付请求),使用counter函数作为支付金额的参数
- 添加查看结果数观察结果