填写用例详情
用例详情用于描述该测试用例的测试背景、需要的前置条件和测试步骤,目的是记录测试用例的基本信息,便于复用。用例详情可以不填写。
操作步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、选择页面右侧的“用例详情”进入用例详情页面,输入测试用例描述、前置条件、测试步骤,依照下表设置用例基本信息。
用例基本信息
参数 | 参数说明 |
---|---|
状态 | 描述测试用例当前处于哪种状态,如新建、设计中、测试中、完成。 |
用例等级 | Level 0:最基本的功能验证,用例不宜过多,各模块尽量保证在10-20个,占比5%左右。 1级:基本功能验证,可用于继承特性的基本功能验证、迭代验收前的基本功能验证等,占比20%左右。 2级:重要特性验证,可用于测试版本(非回归版本)中手工测试,占比60%左右。 3级:一般功能/非重要功能验证,包括对基本/重要功能的异常测试,占比10%~15%左右。 4级:非常特殊输入、场景、阈值条件的用例,该级别用例不宜过多,占比0%~5%左右。 |
标签 | 用例自定义标签,用于标识用例。 输入标签:单击标签输入框,输入标签后,用空格或回车键生成标签,每个用例限制10个标签。 删除标签:单击标签输入框,单击已生成标签后的删除该标签。 |
创建时间 | 测试用例的创建时间 |
修改时间 | 测试用例的最新修改时间 |
5、用例详情信息设置完成后,单击“保存”。
用例步骤配置
测试用例创建完成后可以对测试用例进行修改来满足自身业务需求。
创建用例步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、选择页面右侧的“用例步骤”,选择前置步骤或测试步骤配置。
前置步骤:每个执行线程中,仅执行一次。如无业务需求可以不添加。
测试步骤:测试用例的执行体,需要配置。
5、根据实际业务需求,选择添加请求、事务、数据指令、循环控制器、条件判断、集合点、并发权重控制器、吞吐量控制器。
支持同时添加请求、事务,也可以只添加其中之一。在实际使用过程中,数据指令、循环控制器、条件判断、集合点一般和请求联合使用。
- 添加请求的具体步骤请参考添加请求信息(报文)、添加请求信息(思考时间)、添加请求信息(响应提取)和添加请求信息(检查点)。
- 添加事务:已在事务库中存在事务模型。单击“添加事务”,勾选事务模型的名称,单击“确定”。创建事务模型的具体步骤请参考事务。
- 添加数据指令、循环控制器、条件判断或者集合点添加的具体步骤请参考添加数据指令、循环控制器、条件判断、集合点。
- 添加并发权重控制器或吞吐量控制器具体步骤请参考添加并发权重控制器、吞吐量控制器。
6、 配置完成后,单击“保存”。
配置请求失败跳过
用例执行时,当请求失败时,用例不会在此抛出异常终止执行,而是会继续执行后面的请求。适用场景是某个请求的失败不能影响后面关键步骤的执行。
1、 登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、在“用例步骤”页签下,找到对应的请求(AW)。
5、单击请求右侧第二个按钮开关,配置当前AW是否失败跳过,默认配置为“否”。
是:配置请求失败跳过,请求失败不会中断用例执行。
否:配置默认是请求失败不跳过,该请求失败会中断后面请求执行。
样例参考
请求aw-1配置了请求失败跳过,如果请求aw-1执行结果为失败,会跳过该请求失败,接着执行后面的请求aw-2。
配置了请求失败跳过的AW
配置请求失败重试
用例执行时,当请求失败时,用例会根据失败重试的配置进行重试,重试次数和重试的间隔。适用场景是某个请求因网络、性能等问题导致执行结果失败,可配置重试增加容错。
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、在“用例步骤”页签下,找到对应的请求(AW)。
5、在“检查点”页签,开启“启用结果检查”,进行失败重试配置。
样例参考
aw-1配置了请求失败重试,没有配置请求失败跳过。
- 如果请求aw-1执行成功,不会执行重试,接着执行后面的请求aw-2。
- 如果请求aw-1执行失败,请求aw-1按照检查点的配置进行失败重试,将进行3次重试,每次间隔3000ms。
- 在重试3次中,aw-1请求成功则退出失败重试,且aw-1请求结果是成功的,接着执行后面的请求aw-2。
- 如果重试3次全部失败,则aw-1结果为失败,且不会执行后面的请求aw-2,中断执行。
请求aw-1配置了检查点
禁/启用用例请求信息
如果用例的某一个请求信息想要留存但不想被使用,可以使用禁用用例请求信息功能。如果想要恢复该请求信息的使用,可以再对其进行启用。
1、登录性能测试控制台,在左侧导航栏中选择“性能测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、禁用用例请求信息。
在“用例步骤”页签中,单击待禁用的请求信息后的,对该请求信息进行禁用,不影响其他请求信息。
5、启用用例请求信息。
在“用例步骤”页签中,单击待启用的请求信息后的,对该请求信息恢复启用,不影响其他请求信息。
复制/粘贴用例请求信息
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、在“用例步骤”页签中,单击待复制请求信息后的 > 复制。等待页面右上角提示“复制成功”。
5、可选择性能测试工程中任意工程中测试用户的请求信息,单击请求信息后的 > 粘贴至前方或粘贴至后方,将刚复制的请求信息粘贴到选定位置。
添加请求信息(报文)
报文是HTTP/HTTPS/TCP/UDP/HLS/RTMP/WEBSOCKET/HTTP-FLV应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。这些报文都是在客户端、服务器和代理之间流动。
操作步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、 在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。
4、在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。
5、在“报文”页签,参照下表设置基本信息。
报文参数
参数 参数说明 协议类型 请根据业务的协议类型选择,当前支持HTTP/HTTPS/TCP/UDP/HLS/RTMP/WEBSOCKET/HTTP-FLV。 当协议类型为HTTP和HTTPS时,设置以下参数。 - 请求方式 GET/POST/PATCH/PUT/DELETE 请求地址 发送请求的URL地址,比如“http://域名/路径”,也可以包含参数的部分“http://域名/路径?key1=value1&key2=value2”。支持变量输入,详情请参见插入变量。
说明IPV6地址无法在URL地址中直接输入,需要将IPV6地址添加为文本型全局变量,再在URL地址中引入该全局变量。响应超时(ms) 发送请求,等待服务器响应的超时时间。如果不设置此参数,默认响应超时时间为5000ms。
说明响应超时的范围为20ms到60s。携带cookie 自动获取:使用响应设置的cookie。说明用例下至少已有一个请求信息,添加新的请求信息时进行设置。
手动设置:只使用当前请求信息设置在头域中的cookie。请求参数 请求地址中的参数设置。单击“添加请求参数”,设置“名称”和“值”,如果您不需要添加请求参数,可以单击“删除”,删除请求参数。 请求头 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域作要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。
单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。说明“请求方式”为“POST”或“PUT”,且“头域”为“Content-Type”时,“值”有三种类型,且支持插入变量:
自定义:直接在输入框中输入值。
application/x-www-form-urlencoded:请求体为可添加的键值对形式,值为文本。
multipart/form-data:请求体为可添加的键值对形式,值可为文本或文件。值为文件时,支持body体导入。Body体 实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分。如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
1. 在请求内容输入框内输入“$”。
2. 在“插入变量”对话框中,配置参数。详情请参见插入变量。
3. 单击“选择”。说明请求方式为GET时,不支持报文内容。当协议类型为TCP时,设置以下参数。 - IP 发送请求到被测服务器的IP地址。 端口号 发送请求到被测服务器的端口号。 连接超时 发起连接,服务器无响应的超时时间。 返回超时 连接建立成功,等待响应返回的超时时间。 连接设置 重复使用连接:请求响应完成后,不断开连接,复用连接发送接收下一次请求响应。
关闭连接:每次完成请求响应完成后,断开连接,下一次重新建立连接。返回结束设置 通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。
返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成。
说明结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。内容格式 请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。 1. 在请求内容输入框内输入“$”。说明16进制码流的内容取值范围为“0-9”和“a-f”,且总字符个数为双数。如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
2. 在“插入变量”对话框中,配置参数。详情请参见插入变量。
3. 单击“选择”。当协议类型为UDP时,设置以下参数。 - IP 发送请求到被测服务器的IP地址。 端口号 发送请求到被测服务器的端口号。 返回结束设置 通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。
返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成。
说明结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。内容格式 请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。 1. 在请求内容输入框内输入“$”。说明16进制码流的内容取值范围为“09”和“af”,且总字符个数为双数。如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
2. 在“插入变量”对话框中,配置参数。详情请参见插入变量。
3. 单击“选择”。当协议类型为HLS时,设置以下参数。 - 流媒体地址 视频源的地址,比如“http://域名/路径”。 播放时长(秒) 模拟播放的时长。 说明用例调试时,播放时长会设置为3秒。直播缓冲等待请求时间间隔(毫秒) 直播场景下,视频播放源无新数据时候,尝试获取新数据的时间间隔。 直播缓冲等待请求的最大次数 直播场景下,视频播放源无新数据时候,尝试获取新数据的最大次数,如果超过最大次数,则判断为失败。 当协议类型为RTMP且“请求方式”为“推流”时,设置以下参数。 - 流媒体服务器地址 被测流媒体服务器的IP地址。 端口号 被测流媒体服务器监听的端口号,RTMP协议默认为1935。 应用名称 即推流URL中的AppName,直播流媒体文件存放路径,例如:live。 流名称 即推流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。 推流时长(秒) 模拟主播推流的时长,单位:秒。 视频源地址 用来存放模拟直播推流的视频源文件的OBS地址。目前仅支持flv文件格式,且不支持H.265编码的非标准flv文件。 当协议类型为RTMP且“请求方式”为“拉流”时,设置以下参数。 - 流媒体服务器地址 被测流媒体服务器的IP地址。 端口号 被测流媒体服务器监听的端口号,RTMP协议默认为1935。 应用名称 即拉流URL中的AppName,直播流媒体文件存放路径,例如:live。 流名称 即拉流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。 播放时长(秒) 模拟观众观看直播的时长,单位:秒。 当协议类型为WEBSOCKET时,设置以下参数。 - WEBSOCKET方法类型 Connect:与压测网站建立WebSocket连接。
DisConnect:关闭与压测网站的连接。
Pong:向压测网站发送pong。
Ping&Pong:向压测网站发送pong期望返回ping。
Request:向压测网站发送请求并接收响应。
ReadOnly:仅接收压测网站发送的信息。
WriteOnly:仅向压测网站发送信息。请求连接地址 WebSocket连接的URL地址,比如“ws://域名/路径”,支持加密请求,即“wss://域名/路径”。 连接超时(ms) 发起连接,服务器无响应的超时时间。 说明仅当“方法类型”为“Connect”时,需要设置该参数。状态码 自定义关闭连接对应的状态码。默认值为1000,输入范围为0~4999。 说明仅当“方法类型”为“DisConnect”时,需要设置该参数。请求类型 请根据被测服务器的业务请求内容,下拉选择“Text”或“Binary”。 说明仅当“方法类型”为“Request/WriteOnly”时,需要设置该参数。请求内容 根据请求类型中设定格式输入请求信息报文内容。 说明仅当“方法类型”为“Request/WriteOnly”时,需要设置该参数。响应类型 请根据被测服务器的业务响应内容,下拉选择“Text”或“Binary”。 说明仅当“方法类型”为“Request/ReadOnly”时,需要设置该参数。响应超时(ms) 连接建立成功,等待响应返回的超时时间。 请求头 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域作要求,仅透传用户定义的头域到压测服务器。
单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。
单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。当协议类型为HTTP-FLV时,设置以下参数。 - 流媒体地址 视频源的地址,比如“http://{视频源ip}:8080/live/stream.flv”。 播放时长 模拟播放的时长。 说明用例调试时,播放时长会设置为3秒。
6、配置完成后,单击“保存”。
报文如何填写
报文通俗的解释就是用户在网站界面上的所有单击操作。每个单击操作通过编辑成满足协议规范带有用户请求内容格式的码流传送给不同的第三方,最后得到一个正确或者失败响应的一个过程。
可以通过在操作时按“F12”,或抓包工具(例如wireshark)查看报文是怎么请求的,然后根据实际业务在压测的报文中填写。
添加请求信息(思考时间)
为了更好的模拟用户的行为,需要模拟用户在不同操作之间等待的时间,例如,当用户收到来自服务器的数据时,可能要等待几秒查看数据,然后再做出响应,这种延迟,就称为思考时间。
操作步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。
4、在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。
5、在“思考时间”页签,参照下表设置基本信息。
思考时间参数
参数 | 参数说明 |
---|---|
启用思考时间 | 启用思考时间后,当您接收到来自服务器的数据时,可能要等待几秒查看数据,然后再做出响应。 |
思考时间 | 思考时间是指用户在执行两个连续操作期间的等待时间。如用户在登录和搜索之间停留的时间。 例如,某用例每运行一次响应时间为0.5 秒。 如果希望每秒执行两次用例请求,则不添加请求信息类型为“思考时间”的用例请求信息。 如果希望每秒只执行一次用例请求,思考时间调整为1秒。如果思考时间设置为1秒而响应时间大于1秒,则思考时间不会生效,按响应时间发送压测请求。 |
6、配置完成后,单击“保存”。
添加请求信息(响应提取)
如果同一用例中存在多个报文,通过正则表达式或JSON提取把前一个报文的输出提取出来,作后一个报文的输入。
例如,在电商抢购场景中,您搜索对应的商品之后购买该产品,可使用响应提取功能,提取“搜索”报文得到的商品id作为下一个“购买”报文的输入参数。
说明
响应提取不支持跨用例提取,即从用例A的报文的响应中提取值作为用例B报文的输入。
响应提取的变量为局部变量。
操作步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。
4、在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。
5、在“响应提取”页签,参照下表设置基本信息。
响应提取参数
参数 参数说明 启用响应提取 启用响应提取后,如果同一用例中存在多个报文,通过正则表达式或JSON提取把前一个报文的输出提取出来,作后一个报文的输入。 变量名称 变量的名称,命名必须唯一,响应提取的值赋予此变量。 预期值 预期响应提取出的变量值。开启后,会将响应提取到的值与预期值进行比对,如果不等则链接失败。 提取内容范围 响应提取内容的范围。其中,“报文内容”、“头域”和“URL”可通过正则表达式进行内容提取。 正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。完整的正则表达式由两种字符构成:特殊字符(special characters)称为“元字符”(meta characters);其它为“文字”(literal),或者是普通文本字符(normal text characters,如字母、数字、汉字、下划线)。元字符的说明请参见正则表达式元字符。 说明“()”表示提取,对于您要提取的内容需要用小括号括起来,每个“()”之间的内容表示一个子表达式。第几个匹配项 在正则表达式已提取的内容中,获取第几个匹配的内容。取值范围:正整数。
说明该参数值不可设置为0。表达式取值 表示解析到的第几个子表达式的值。取值范围:自然数。 说明取值为0:匹配整个正则表达式。
取值为1:匹配正则表达式的第一个子表达式即第一个“()”提取的内容。通过“正则表达式”和“第几个匹配项”提取出内容后,再通过“表达式取值”获得最终的提取内容。需获取的键名 输入需要获取的键名。例:{"key":{"key1":"v1","key2":{"key3":"v3"},"key4":[{"key41":"v41","key42":"v42"},{"key41":"v43","key42":"v44"}]}},如果想取出"v42",则输入:key.key4[0].key42。 说明仅在提取内容范围是json内的值时生效。缺省值 正则匹配或JSON提取失败时,取的值。 条件表达式 与“需获取的键名”配套使用。例如:{"key":{"key1":"v1","key2":{"key3":"v3"},"key4":[{"key41":"v41","key42":"v42"},{"key41":"v43","key42":"v44"}]}},如果需要表达:当key42=v42时,提取目标值v41;则在“条件表达式”框里输入:key.key4[].key42 = v42,在"需获取的键名"框里输入:key.key4[].key41。
常用正则表达式介绍
正则表达式 说明 示例 (\d+) 匹配非负整数 字符串:
bTivm2wu9jih1LBKR4osZGrjjl匹配结果:
2
9
1
4([A-Za-z]+) 匹配由26个英文字母组成的字符串 字符串:
bTivm2wu9jih1LBKR4osZGrjjl匹配结果:
bTivm
wu
jih
LBKR
osZGrjjl([A-Za-z0-9]+) 匹配由数字和26个英文字母组成的字符串 字符串:
bTivm2wu9jih1LBKR4osZGrjjl:asdasd22匹配结果:
bTivm2wu9jih1LBKR4osZGrjjl
asdasd22(\w+) 匹配由数字、26个英文字母或者下划线组成的字符串 字符串:
bTivm2wu9jih1LBKR4osZGrjjl:asdasd22匹配结果:
bTivm2wu9jih1LBKR4osZGrjjl
asdasd22([\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+) 匹配email地址 字符串:
bTivm2wu9jih1LBKR4osZGrjjl:abc@abc.com匹配结果:abc@abc.com
6、(可选)一个请求信息可包含1个或多个变量,如果您的请求信息需要添加多个变量,请单击“添加变量”,再设置变量的相关参数。
7、配置完成后,单击“保存”。
正则表达式响应提取示例
示例一
例如,前一个报文响应的报文内容如下所示:
"baseInfo" : {
"mobilephone":"xxxxxxxxxxx",
"Telephone":"xxxxxxxxxxx",
"unitGuid":"xx",
"unitMame":null,
"address":"xxx",
"sex" : 0,
"imageUr1" :nul1
},
"UserNotices":null
},
"msgId'" : "64xxxxxxxxxxxxxxxxxxxxxxxf5",
"isUsed" :"1"
"token":"eyxxxxxxxxxxxJ9.eyJzdW1101JYZMiLCJcUbdGUkIJezMT!!zz#z!20TxxxxxxxxxxxxxxxxxS1611dYQISHTFKifVOsImd1aWQi0ilOODkiLCJleHAiOjEiMzIizNzY1MjZ9.myU5idiASM-11@EP7YQTfTsR_8zsq7?sbYJYoxfRsuf6OZhGL-XWmjnvdaviGauhSdw16ImWOFEvbACSHMXGT1U0ijS5z6ezX@sZePruzFnvcIMgShF8xNPN6zVokQp-uwbyS3W6NpZpDuwsjuiZ7DZTNpKoqCkGHwvPJrHBOrWFR_u6-FBbTiFiqdhQb95U-1gLiLvoZHY_rguzwyrZ-leGRdCG_ZASreoWC-uH)HnqltpgItrChWQToHQyxOABdMSbBSHhNctBBZHgQPMESqQQQTbBiPGvbQDprB7ZBFMUB_ShynS_evtyfEladGEddhOBn-fxxxxxxxxxxx"
},
如果想要获取token值的,可通过正则表达式 "token"\s :\s* "(.?)" 提取,响应提取的设置如下图所示。
示例二
例如,前一个报文响应的报文内容为:
javawind:9javawind:12
javawind:16javawind:17
javawind:46javawind:22
如果想要提取数值16,响应提取的设置如下图所示。
- 通过正则表达式 javawind:(. )javawind:(. ) ,提取数据如下:
9 12
16 17
46 22
- 通过第2个匹配项,提取数据如下:
16 17
- 通过第1个表达式,提取数据如下:
16
示例三
例如,报文内容为:ababdacac。
如果响应提取设置如下图所示:
正则表达式 (ab|ac)+ ,表示由多个ab或者ac匹配。
第几个匹配项:1,表示由ab匹配到的,也可以输入2,表示由ac匹配到的。使用1可以得到abab及子串ab,使用2可以得到acac及子串ac。
表达式取值:0,表示使用最大匹配串abab或者acac,1表示使用子串ab或者ac。
示例四
例如,被提取内容为:HTTP响应头的Content-Type。
正则表达式 Content-Type: (.*)\r\n ,注意冒号后面有一个空格,结尾有\r\n,是HTTP规范产生的。
第几个匹配项:1,因为只有一个(.*)。
表达式取值:1,取到希望得到的值。
JSON表达式响应提取示例
样例数据如下:
{
"name": {
"first": "Tom",
"last": "Anderson"
},
"age": 37,
"children": ["Sara","Alex","Jack"],
"fav.movie": "Deer Hunter",
"friends": [{
"first": "Dale",
"last": "Murphy",
"age": 44,
"nets": ["ig","fb","tw"]
},
{
"first": "Roger",
"last": "Craig",
"age": 68,
"nets": ["fb","tw"]
},
{
"first": "Jane",
"last": "Murphy",
"age": 47,
"nets": ["ig","tw"]
}]
}
示例一
如果想要提取“英文的first name”,需获取的键名为 name.first ,响应提取的设置如下图所示。
示例二
如果想要提取“Tom的孩子数量”,需获取的键名为 children.# ,响应提取的设置如下图所示。
示例三
如果想要提取“Tom的第二个孩子的名字”,需获取的键名为 children.1 ,注意序号从0开始,响应提取的设置如下图所示。
示例四
如果想要提取“Tom的年龄大于45岁的朋友的last name”,需获取的键名为 **friends.#(age>45)#.last** ,响应提取的设置如下图所示。
示例五
如果想要提取“Tom的last name为Murphy的朋友的first name”,需获取的键名为 **friends.#(last=="Murphy")#.first** ,响应提取的设置如下图所示。
示例六
如果想要提取“Tom的第一个朋友的第二个网名”,需获取的键名为 friends.0.nets.1 ,注意序号从0开始,响应提取的设置如下图所示。
示例七
如果想要提取“Tom的朋友中网名为fb的朋友的first name”,需获取的键名为 **friends.#(nets.#(=="fb"))#.first** ,响应提取的设置如下图所示。
添加请求信息(检查点)
检查点是指通过自定义校验信息来验证服务端的返回内容是否正确。针对不同的协议类型,检查点支持比对的内容不同,HTTP/HTTPS支持响应码、头域和内容校验,TCP/UDP/WEBSOCKET仅支持内容校验。
操作步骤
1、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
2、选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。
3、在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。
4、在“检查点”页签,参照下表设置基本信息。
检查点参数
5、 配置完成后,单击“保存”。
添加数据指令、循环控制器、条件判断、集合点
数据指令
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加数据指令的测试用例。
4、在“用例步骤”页签下,单击添加“更多 > 数据指令”。
5、单击“添加参数”,输入“参数名”,设置“参数逻辑”,选择“参数模式”。
- 输入“参数名”
参数逻辑结果赋值的参数名称。
- 设置“参数逻辑”
- 直接输入普通字符串,如直接写入数字1.23或者字符串“abc”,对参数名进行赋值常量。
- 在输入框内输入“$”,对参数名赋值变量。在弹出的“插入变量”对话框中,选择“变量类型”。
“变量类型”选择“自定义变量”时,需设置以下两个参数:
- 变量范围:选择变量范围。
- 变量名称:自定义变量名称。自定义变量名称为添加变量时为变量取的名称。
“变量类型”选择“系统变量”时,需要选择函数名称。详细可以参考 下表 。
参数 参数说明 启用结果检查 启用检查点后,通过自定义校验信息来验证服务端的返回内容是否正确。 重试次数 请求失败后,进行重试的次数,直到该请求成功,取值范围为0~100。
说明重试的请求在报告中不统计,例如响应时间、RPS、成功率等,报告中仅统计最后一次的数据。重试间隔 请求失败后,下一次重试请求执行的时间间隔,单位毫秒(ms),取值范围为0~3600000,即最大时间间隔为1小时。 响应码 仅在“报文”页签中“协议类型”为“HTTP”或者“HTTPS”时,需要设置。响应报文携带的HTTP/HTTPS协议响应状态码,通常包括1XX,2XX,3XX,4XX和5XX。 头域 仅在“报文”页签中“协议类型”为“HTTP”或者“HTTPS”时,需要设置。HTTP/HTTPS协议的Header部分。
1. 单击“添加头域检查”。
2. 设置“头域名”,详情请参见头域说明。
3. 设置检查条件。
4. 设置内容。响应内容 HTTP/HTTPS/TCP/UDP/WEBSOCKET协议的Body部分,为HTTP/HTTPS/TCP/UDP/WEBSOCKET协议请求、响应的负载部分。
1. 单击“添加内容检查”。
2. 设置检查条件。条件规则 AND:需要全部符合才能检查通过。
OR:只需一条符合即可检查通过。
函数名称
函数名称 | 详细说明 |
---|---|
身份证号 | 随机生成一个身份证号。 |
手机号 | 随机生成一个手机号。 |
区间随机数 | 根据用户输入区间,随机生成区间内的任一整数。 |
随机字符串 | 根据用户输入的位数(1-32),随机生成小写字母和数字混合的字符串。 |
时间戳 | 根据用户选择(秒(s)/毫秒(ms)),生成执行时当前时间戳(秒(s)对应10位,毫秒(ms)对应13位)。 |
UUID | 随机生成一个32位的字符串。 |
“变量类型”选择“四则运算”时,需要选择函数:
- 在下拉框中选择“+”、“-”、“*”、“/”或者“舍入模式”,单击“选择”。
- 单击按钮“”,在弹出的“四则运算函数编辑”对话框中,设置如下参数:
- 表达式:输入四则运算的操作数,可以是直接写入的数字如1.23,也可以是全局变量、局部变量或者系统变量,还可以重新选择函数。
- 模式:即为舍入模式,指定表达式计算结果的舍入行为。详细说明可以参考下表。
模式说明
- 精度:指四则运算的小数保留位数,最大可输入精度位数32。
3.配置完成后,单击“确定”。
说明当输入多个参数逻辑时,多个参数逻辑会拼接成一个字符串赋值给参数名。
模式名称 详细说明(以保留小位数为2位为例) 远零舍入 保留小数位数后的非零小数向远离零的方向进位,例如1.234结果1.24,-1.234结果-1.24。 近零舍入 保留小数位数后的非零小数向靠近零的方向截断,例如1.234结果1.23,-1.234结果-1.23。 向上舍入 保留小数位数后的非零小数向正无穷大方向舍入,正数即为进位,负数即为截断,例如1.234结果1.24,-1.234结果-1.23。 向下舍入 保留小数位数后的非零小数向负无穷大方向舍入,正数及为截断,负数即为进位,例如1.234结果1.23,-1.234结果-1.24。 四舍五入 保留小数位数后的第一位数字小于五则截断,否则进位,例如1.234结果1.23,-1.235结果-1.24。 五舍六入 保留小数位数后的第一位数字小于六则截断,否则进位,例如1.235结果1.23,-1.236结果-1.24。 银行家 满足四舍五入,特例是当保留小数位数后的小数刚好为半数,向距离最近的偶数进位或者截断,例如1.2350000结果1.24,1.2250000结果1.22,1.2250001结果1.23。 不舍入 不执行舍入行为。
说明当选择不舍入时,不需要输入精度。
“变量类型”为“加密函数”时,需要选择加密类型和变量插入的位置,加密类型如下:
MD5:对val数据进行md5加密,返回加密后的数据字符串。
MD5-BASE64:对val数据进行MD5-BASE64编码,返回编码后的数据字符串。
SHA-1:对输入的数据进行SHA-1加密,返回加密后的数据字符串。
SHA-224:对输入的数据进行SHA-224加密,返回加密后的数据字符串。
SHA-256:对输入的数据进行SHA-256加密,返回加密后的数据字符串。
SHA-384:对输入的数据进行SHA-384加密,返回加密后的数据字符串。
SHA-512:对输入的数据进行SHA-512加密,返回加密后的数据字符串。
BASE64编码:对输入的数据进行BASE64编码,返回编码后的数据字符串。
BASE64解码:对输入的数据进行BASE64解码,返回解码后的数据字符串。
- 选择“参数模式”
- 在下拉框中选择“重复赋值”:单线程每次取值都会重新赋值。
- 在下拉框中选择“只赋值一次”:一个线程内仅赋值一次。
6、 配置完成后,单击“保存”。
循环控制器
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加循环控制器的用例。
4、在“用例步骤”页签下,单击添加“更多 > 循环控制器”。
5、设置参数。
循环次数:设置循环执行次数,输入大于等于1的值。
退出条件:请求满足该条件,跳出循环。表达式和对比值均支持变量和字符串,暂不支持多个条件组合使用,如需使用集合或多对比值的匹配,可使用正则表达式。
6、单击“添加更多”,增加循环体执行内容。
条件判断
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加条件判断的用例。
5、设置参数。
判断条件:请求满足该条件,执行该条件控制器定义的请求、事务或其他逻辑控制器。表达式和对比值均支持变量和字符串,暂不支持多个条件组合使用,如需使用集合或多对比值的匹配,可使用正则表达式。
6、单击“添加更多”,增加满足条件后执行的请求、事务或其他逻辑控制器。
集合点
集合点的目的是阻塞并发,直到X个并发被阻塞或达到等待时间,然后它们都被一次释放。因此,集合点可以在测试用例的不同点创建大的即时负载。
1、登录性能测试控制台,在左侧导航栏中选择“性能测试测试工程”。
2、 在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加集合点的用例。
4、在“用例步骤”页签下,单击添加“更多 > 集合点”。
5、设置参数。
等待时间(ms):在集合点等待的时长。
并发数:用户数累积到并发数,释放在集合点等待的用户。
添加并发权重控制器、吞吐量控制器
并发权重控制器
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待添加数据指令的用例。
4、在“用例步骤”页签下,单击添加“更多 > 并发权重控制器”。
5、设置参数。
支持固定分支和随机分支两种模式。并发权重需大于0,只能输入整数。
吞吐量控制器
1、 登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、 选择“测试用例”页签,在左侧“用例列表”下选择待添加数据指令的用例。
4、在“用例步骤”页签下,单击添加“更多 > 吞吐量控制器”。
5、设置参数。
设置RPS的上限值,控制器的执行RPS不超过设定的值。RPS上限值默认为100,最大输入值1000W,可以输入小数,小数支持2位精确度。
压力配置
操作步骤
1、 登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、选择页面右侧的“压力配置”,参照下表设置阶段参数。
说明一个用例最多添加1000个阶段。
添加阶段
参数 参数说明 阶段名称 自定义阶段名称,用于区分不同的阶段,比如首页测试。 压力模式 压力模式目前支持以下几种模式:
并发模式:用例按照固定或者梯度递增的并发用户数进行压测。
TPS模式:用例按照每秒指定的事务数进行压测。TPS模式中,一个虚拟用户执行一次测试用例为一个事务。实际压测时,能否达到指定的事务数取决于最大并发数和事务平均响应时延。
摸高模式:用例按照指定的爬坡时间由最小并发用户数线性递增到最大用户并发数后保持在峰值并发用户数进行压测。
浪涌模式:用例按照周期性变化的并发用户数进行压测,每个周期先按照最小并发用户数压测,再按照最大并发用户数压测。按最大并发用户数压测时长可自定义,周期数为设定的浪涌次数。
震荡模式:用例按照周期性波动的并发用户数进行压测,每个周期用户数在最小并发数和最大并发数之间波动。周期数为设定的震荡次数。
智能摸高:用例按照指定的单步执行时长由最小并发用户数按递增并发数逐步到最大用户并发数后保持在峰值并发用户数进行压测。
说明执行器按设定的梯度逐步增加并发数进行压测,压测时,后台会为每个并发梯度生成一个“阶段数据”,当某个阶段的数据相比前一个阶段有发生明显的性能拐点时,系统判定到达性能峰值。其中性能拐点通过以下场景定义:成功率小于阈值(默认100%)、RPS曲线下降、rt/tp90/tp99曲线出现较大的斜率变化。执行策略 执行策略目前支持按时长和按次数。
按时长:按照设定的持续时间进行压测。
按次数:按照设定的发送总次数进行压测。
说明当前仅并发模式和TPS模式涉及该参数。调压模式 在压测过程中调整压力,目前支持自动调压和手动调压。
自动调压:自动调压的并发上限为所有阶段中最高的并发用户数。
手动调压:手动调压的并发上限为最大并发数。手动调压后原有多阶段压力配置失效。
说明当前仅并发模式和TPS模式且执行策略为按时长时涉及该参数。当“压力模式”为“并发模式”、“执行策略”为“按时长”,“调压模式”为“自动调压”且“梯度递增”关闭时,需要配置以下参数: 并发数 并发数指在同一时刻内,对系统进行业务操作的用户数量。
在性能测试服务中为用户在定义测试任务阶段设置的虚拟用户数。压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“并发模式”、“执行策略”为“按时长”,“调压模式”为“手动调压”时,需要配置以下参数: 最大并发数 执行测试用例的最大虚拟用户数。 起始并发数 执行测试用例的起始虚拟用户数。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“并发模式”、“执行策略”为“按时长”,“调压模式”为“自动调压”且“梯度递增”打开时,需要配置以下参数: 说明一个用例只能设置一个“梯度递增”阶段。起始并发数 梯度递增的起始并发用户数量。 递增总并发数 一共会增加的并发用户数。梯度递增中,第一个子阶段并发用户为起始并发用户数,其余每个子阶段的并发用户为上一阶段并发用户数+递增总并发用户*递增量级,最后一个子阶段并发用户为起始并发用户数+递增总并发用户数。 递增量级 每个子阶段增加的并发用户数=递增总并发用户*递增量级。
递增量级包含:5%、10%、20%、50%。单量持续时间(分钟) 每个子阶段压测执行的时间。 当“压力模式”为“并发模式”、“执行策略”为“按次数”,需要配置以下参数: 说明只能添加单阶段。并发数 并发用户数指在同一时刻内,对系统进行业务操作的用户数量。
在性能测试服务中为用户在定义测试任务阶段设置的虚拟用户数。发送总次数 该用例在一次任务的运行中,将按照运行次数计算,到达设定数值,该任务下此用例的性能测试将终止。 说明发送总次数不小于并发用户数。当“压力模式”为“TPS模式”、“执行策略”为“按时长”且“调压模式”为“自动调压”,需要配置以下参数: 最大并发数 执行测试用例的最大虚拟用户数。 TPS值 设定每秒执行事务的数量。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“TPS模式”、“执行策略”为“按时长”且“调压模式”为“手动调压”,需要配置以下参数: 最大并发数 执行测试用例的最大虚拟用户数。 起始并发数 执行测试用例的起始虚拟用户数。 TPS值 设定每秒执行事务的数量。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“TPS模式”、“执行策略”为“按次数”,需要配置以下参数: 说明只能添加单阶段。最大并发数 执行测试用例的最大虚拟用户数。 TPS值 设定每秒执行事务的数量。 发送总次数(次) 该用例在一次任务的运行中,将按照运行次数计算,到达设定数值,该任务下此用例的性能测试将终止。 说明发送总次数不小于并发用户数。当“压力模式”为“摸高模式”,需要配置以下参数: 起始并发数 执行测试用例的起始虚拟用户数。 最大并发数 执行测试用例的最大虚拟用户数。 爬坡时间(秒) 虚拟用户数从起始并发数线性递增到最大并发数的时长。 说明建议爬坡时间小于持续时间。爬坡时间与持续时间相同且并发量较大的情况下,采样到的最大并发可能会略小于设置的最大并发数。压测时长(分钟) 压测执行的时间。 摸高期望指标
响应时间:最大值为60000ms。
成功率:最小值为0。
摸高模式下,期望被测系统的请求响应时间小于等于输入值,请求成功率大于等于输入值,摸高分析规则为其中一个指标首次出现连续6秒未达标的情况时(比如响应时间连续6s大于期望值),摸高分析完成后,取其中第一秒的数据为摸高结果。说明当用例执行达到探底期望指标后,任务不会停止,会继续执行。
当“压力模式”为“浪涌模式”,需要配置以下参数: 压测时长(分钟) 压测执行的时间。 最大并发数 执行测试用例的最大虚拟用户数,也是虚拟用户数变化过程峰值。 最小并发数 执行测试用例的最小虚拟用户数,也是虚拟用户数变化过程的最小值。 浪涌次数 在持续时间内,虚拟用户数变化的周期数。 峰值持续时间(秒) 一个周期内,按最大并发虚拟用户数压测的持续时间。 当“压力模式”为“震荡模式”,需要配置以下参数: 压测时长(分钟) 压测执行的时间。 最大并发数 执行测试用例的最大虚拟用户数,也是虚拟用户数波动过程的波峰值。 最小并发数 执行测试用例的最小虚拟用户数,也是虚拟用户数波动过程的波谷值。 震荡次数 在持续时间内,虚拟用户数波动变化的周期数。 当“压力模式”为“智能摸高模式”,需要配置以下参数: 起始并发数 执行测试用例的起始虚拟用户数。 递增并发数 每步增加的虚拟用户数。 说明递增并发数非线性增长,执行时会指数增加。单步执行时长(秒) 每步执行的时间,建议配置至少20秒以上。 压测时长(分钟) 压测执行的时间,建议配置30分钟以内。 说明当成功率小于阈值(默认100%)、RPS曲线下降、rt/tp90/tp99曲线出现较大的斜率变化,任务会停止压测。成功率阈值 摸高时可容忍的成功率,默认值100。
5、 配置完成后,单击“保存”
高级配置
操作步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、 选择页面右侧的“高级配置”。
- 设置执行器:执行器数量的设置仅在使用私有资源组时生效,如果不配置,使用默认策略。默认策略为单执行器支持并发:HTTP/HTTPS(5000),WebSocket(5000),JMeter(1000),HLS/RTMP/HTTP-FLV(1000)。 执行器数量 >= 用例中所有阶段最大的并发用户/5000。
- 日志采集策略设置:当您的用例中请求过多或者存在循环嵌套的情况下,建议使用请求模式。
- 请求模式:用例中的请求将单独输出日志。
- 用例模式:用例中的所有请求将进行关联后输出日志。
5、配置完成后,单击“保存”。
SLA配置
操作步骤
1、登录性能测试控制台,在左侧导航栏中选择“测试工程”。
2、在待编辑性能测试测试工程所在行,单击工程名称进入测试工程详情页面。
3、选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。
4、选择页面右侧的“SLA配置”,详细步骤可参考配置SLA规则。
5、配置完成后,单击“保存”。