1、jmeter进入命令模式:Windows是双击安装目录下bin目录里的jmeter.bat(进入英文模式)双击ApacheJMeter.jar是进入中文模式、linux是进入bin目录执行./jmeter.sh
jmeter -n -t xx.jmeter -l运行
2、http协议的三要素:
1)语法:数据结构和格式
2)语义:每一段比特都有特定的含义
3)时序:发送数据的时间和速度要求
注:没有接口文档可以用捉包工具看
3、为什么要使用jmeter参数化:有以下几个原因
1)可以精简我们测试的操作;2)数据有唯一性的要求;3)有些系统安全机制不能使用相同数据操作;4)真实模拟多个用户的操作行为;
(数据驱动测试:自动化或性能测试领域中脚本开发一种设计模式。
脚本相同 测试数据不同
脚本与数据分离
测试行为/业务逻辑 测试数据
好处:可以精简我们测试;便于测试维护与扩展;提高测试效率。)
4、什么是参数化?
答:将客户端发送给服务器的数据预先保存到一个参数的过程。
步骤:
1)编写脚本,确定需要参数化的数据
2)准备测试数据,数据存储的介质(标量,外部文件,数据库)
3)使用逻辑控制读取存储介质中的数据应用到脚本中
csv_param
一般来说,jmeter元素可以输入的地方都可以参数化
典型例子:1)CSV Data Set Config 中的filename
2)Response Assertion中的Patterns to Test
3)Http Request 中的Method
4)Loop Controller的Loop Count
5)JDBC Request中的SQL Query
...
方式:1)User Defined Variables
2)User Parameters
3)CSV Data Set Config
4)内置函数参数化,比如 __CSVRead,__Random
5)JDBC Request中的SQL Query
5、JMeter元素有以下四种类型的测试元素:
1)测试计划
2)线程组
3)组件
包含配置元件、定时器、前置处理器、后置处理器、断言与监听器
4)控制器
包括取样器和逻辑控制器
6、测试计划描述了JMeter测试在运行时执行的一系列步骤。完整的测试计划由一个或多个线程组、逻辑
控制器、取样器、监听器、定时器、断言和配置元件组成。
7、线程组控制JMeter用来执行测试的线程数。要模拟多少个用户(称之为虚拟用户)来执行测试,可以
通过修改线程组的线程数来实现。
8、元件是JMeter测试中的最小功能单元,JMeter将多个功能类似或逻辑上相
关的元件归为一类,称为组件,JMeter包含六大组件: 配置元件、定时器、前置处理器、后置处理
器、断言、监听器。
9、比如“HTTP Request”取样器元件,可以实现HTTP请求发送的功能。
10、通过配置元件可以新增或修改请求内容,实现对请求的自定义
11、定时器可以使在其作用范围内的每个取样器执行前延迟一段时间,可以避免
在很短的时间内因发送过多的请求到服务器,而导致服务器负载过
重而崩溃。
12、前置处理器经常用于在运行之前修改取样器请求的设置,或更新未从响应文本中提取的变量。
13、后处理器通常用于处理响应数据,从中提取需要的值。
14、JMeter测试是否执行成功,结果是否预期,都可以通过添加断言来进行验证。
15、“查看结果树”监听器显示取样器请求和响应的详细信息等。
16、jmeter执行顺序: 配置元件-->定时器--> 前置处理器--> 取样器-->后置处理器--> 断言--> 监听器
17、http请求用的最多的是get和post请求。
18、所谓参数化,就是将客户端发送给服务器处理的数据预先保存到一个参数中的过程。
19、常见的参数化有:配置元件 CSV_Data_Set_Config和内置参数化函数,比如__CSVRead()
20、参数化步骤:①确定接口参数中哪些请求参数需要进行参数化;②将测试数据放在外部一个文档保存,文件类型为csv或txt;
③添加并配置CSV Data Set Config配置元件;④在请求中将写死的数据用第3步中定义的变量进行替换;⑤将线程数设置为用例的个数或者添加一个循环控制器来实现。
21、使用${__threadNum}获取线程编号,
22、常见的断言有响应断言和json断言
23、为什么要关联?
在客户端与服务器通信过程中,多个请求/响应间的数据会有相互依赖的关系。比如上一个请求返回的
某些响应数据在后续的请求中需要用到。
下面是一些典型的例子:1)比如第一次访问网站获取的session id在后续的请求都会将其传给网站;
2)服务器生成token返回给用户,在后续的请求中要带上token; 3)根据条件查询某记录,在查询结果集中选择记录进行操作(比如删除)
24、关联的定义:将服务器返回的数据包中满足条件的数据保存到一个参数中的过程。
25、怎样将服务器返回的数据保存起啦,JMeter中可以使用后置处理器来处理关联数据,常见的方法有:
1)正则表达式提取器
2)JSON提取器