jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。如果取样器中有参数化的需求,可以通过配置元件或者前置处理器来完成。如果有关联需求,可以通过后置处理器来完成。如果我们想要设置运行场景,比如模拟多少用户,运行多长时间,就设置线程组。如果我们想要模拟并发场景,可以利用定时器来设置;如果我们想要控制业务的执行逻辑,比如登录只运行一次,我们可以用控制器来完成。
- 取样器
取样器的访问路径:【测试计划】——【线程组】——【Sampler】
一个test plan下可以有多个线程组,不同的线程组测试不同的场景,从而组成复杂的测试场景。
一个线程组下可以有多个Sampler(取样器),Sample是执行单元。
- 断言
断言用来验证结果是否正确,预设一个结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,反之失败。
断言的访问路径是:【测试计划】——【断言】
- 监听器
Jmeter的测试结果需要监听器来收集,监听器:①添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用;②展示结果,Jmeter可以以表格及图形的形式展现结果,方便测试人员分析测试结果。
监听器的访问路径:【测试计划】——断言
- 前置处理器
请求发送前做一些环境或者参数的准备工作,可以在前置处理器中来完成这些工作。比如,我们对数据库进行操作前需要先建立一个数据库连接,那么前置处理器就可以完成这个功能。
前置处理器的访问路径:【测试计划】——【前置处理器】
- 配置元件
性能测试中为了模拟大量用户操作我们往往需要做参数化,Jmeter的参数化可以通过配置元件来完成,比如CSV Data Set Config,它可以帮助我们从文件中读取测试数据。配置元件也可以用来记录服务器的返回数据,比如Http Cache Manage,自动记录服务器返回的Cache信息。
配置元件访问路径:【测试计划】——【配置元件】
- 后置处理器
后置处理器一般放在取样器之后,用来处理服务器的返回结果。比如登录web后服务器会返回一个SessionID,Jmeter可以通过正则表达式提取数据。
后置处理器访问路径:【测试计划】——【后置处理器】
前置处理器、配置元件、后置处理器都是为取样器提供数据支持的,取样器关注的是业务逻辑。
- 控制器
控制器的访问路径:【测试计划】——【逻辑控制器】
- 定时器
为了足够真实地模拟用户负载,我们有时需要模拟请求在同一时刻发送,Jmeter可以通过定时器来完成这个需求。定时器种类有很多。
访问路径:【测试计划】——【线程组】——【定时器】
- 线程组
在线程组中可以设置运行的线程组(模拟多用户,一线程一用户),还可以设置运行时长、定时运行等。
访问路径:【测试计划】——【Threads(Users)】
- Test Fragment
这是一个辅助的元件,在此节点下面几乎可以放置任何Jmeter测试元件,但它一般不会被运行。①在脚本开发过程中可以用它来备份文件,②下面的元件可以被模块控制器调用,可以利用它来模块化请求供模块控制器调用。
- 工作台
不直接参与运行,①运行Jmeter录制Http协议脚本时就用到它,我们可以在它下面建立一个HTTP代理服务器元件,设置代理信息然后进行录制;②设置服务器监控(HTTP Mirror Server);③显示当前Jmeter属性信息;④备份脚本。
执行顺序规则:
- 配置元件
- 前置处理器
- 定时器
- 采样器
- 后置处理器
- 断言
- 监听器
Test Plan
Thread Group:场景A,搜索
Thread Group:场景B,加购
Thread Group
Sampler
Listener(占内存,做大并发时一般不用)
Thread Group