云服务器内容精选

  • 导出测试工程 为简化操作,用户不必从零开始编写测试工程,只需要找到与自己业务模型类似的工程,导出测试工程,在此基础上略作修改,再导入测试工程即可。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在PerfTest测试工程列表中选中一个或多个待导出的工程,单击“导出”,保存测试工程文件ProjectList(序列号).json到本地。 如果测试工程中包含SLA规则,导出工程时,无法导出SLA规则的相关内容。 如果全局变量上传了文件,导出测试工程时,无法导出对应的文件。 可扩展测试工程暂不支持导出工程。 暂不支持导出含有MQTT协议的工程。 按照业务需求修改文件中相关参数、工程名称(工程名称需唯一),并保存文件。 请勿修改ProjectList(序列号).json文件的格式。
  • 导入测试工程 性能测试服务支持导入PerfTest类型和JMeter类型的测试工程。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”,单击“导入”。 PerfTest工程导入。 “工程类型”选择“PerfTest工程”。 单击PerfTest文件后的“选择文件”,选中json格式的工程文件,单击“导入”。 导入的工程名称不能和性能测试服务中已存在的工程同名,否则导入会失败。 暂不支持导入含有MQTT协议的工程。 JMeter工程导入。 JMeter文件中关键信息请使用性能测试服务支持的字符,详情请参见 JMeter与PerfTest字段对应关系。 JMeter解析的内容包括: 线程组、HTTP请求、HTTP信息头管理器、正则表达式提取器、用户参数、用户定义的变量、HTTP默认请求值、固定定时器。 暂不支持随机变量。 为保证数据导入的准确性,尽量不要使用重名变量。 JMeter脚本大小不超过5MB。 “工程类型”选择“JMeter工程”。 单击JMeter文件后的“选择文件”,选中jmx格式的工程文件,单击“导入”。 工程导入成功后,单击“关闭”。您可以根据业务需要参照修改测试工程和管理事务请求信息修改测试工程。
  • 使用模板创建测试工程 登录性能测试服务控制台,在左侧导航栏中选择“总览”,进入总览页。 PerfTest定义了如下模板: 选择一网通办系统场景,一网通办系统测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择流媒体场景,流媒体测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择秒杀场景,秒杀测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择电商场景,电商测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择极速创建场景,极速创建测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 可根据实际业务需求修改测试用例,详细操作请参见PerfTest测试用例管理。
  • 报文如何填写 报文通俗的解释就是用户在网站界面上的所有单击操作。每个单击操作通过编辑成满足协议规范带有用户请求内容格式的码流传送给不同的第三方,最后得到一个正确或者失败响应的一个过程。 可以通过在操作时按“F12”,或抓包工具(例如wireshark)查看报文是怎么请求的,然后根据实际业务在压测的报文中填写。 例如,模拟登录请求的POST方法,对应的请求连接、请求方法、头域、报文内容如下图所示。 图1 模拟登录请求的POST方法
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。 在“报文”页签,请根据业务的协议类型选择匹配的协议类型,当前支持HTTP/HTTPS/TCP/UDP/HLS/RTMP/WEBSOCKET/HTTP-FLV/MQTT。请参照以下对应的报文参数表设置基本信息。 表1 HTTP和HTTPS协议报文参数 参数 参数说明 请求方法 可以选择GET、POST、PATCH、PUT或DELETE。 请求地址 发送请求的URL地址,比如“http://域名/路径”,也可以包含参数的部分“http://域名/路径?key1=value1&key2=value2”。 支持变量输入,详情请参见插入变量。 响应超时(ms) 发送请求,等待服务器响应的超时时间。响应超时时间范围是20ms到5分钟。 如果不设置此参数,默认响应超时时间为5000ms。 携带cookie 说明: 用例下至少已有一个请求信息,添加新的请求信息时进行设置。 自动获取:使用响应设置的cookie。 手动设置:只使用当前请求信息设置在头域中的cookie。 自动重定向 选择是否跳转到重定向的地址,开关默认打开,即默认自动跳转到重定向的地址。 请求参数 请求地址中的参数设置。 单击“添加请求参数”,设置“名称”和“值”。选择是否勾选“Url Encode”,默认为不勾选,勾选后对请求参数的值做URL编码。 如果您不需要添加请求参数,可以单击“删除”,删除请求参数。 请求头 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域作要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。 单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。 单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。 说明: “请求方法”为“POST”或“PUT”,且“头域”为“Content-Type”时,“值”有三种类型,且支持插入变量: 自定义:直接在输入框中输入值。 application/x-www-form-urlencoded:请求体为可添加的键值对形式,值为文本。 multipart/form-data:请求体为可添加的键值对形式,值可为文本或文件。值为文件时,支持body体导入。 Body体 实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分。 如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 在请求内容输入框内输入“$”。 在“插入变量”对话框中,配置参数。详情请参见插入变量。 单击“选择”。 表2 TCP协议报文参数 参数 参数说明 IP 发送请求到被测服务器的IP地址。 端口号 发送请求到被测服务器的端口号。 连接超时 发起连接,服务器无响应的超时时间。连接超时时间范围是20ms到60s。 返回超时 连接建立成功,等待响应返回的超时时间。返回超时时间范围是20ms到60s。 连接设置 重复使用连接:请求响应完成后,不断开连接,复用连接发送接收下一次请求响应。 关闭连接:每次完成请求响应完成后,断开连接,下一次重新建立连接。 返回结束设置 通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。 返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。 结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成 。 说明: 结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。 内容格式 请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。 说明: 16进制码流的内容取值范围为“0~9”和“a~f”,且总字符个数为双数。 如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 在请求内容输入框内输入“$”。 在“插入变量”对话框中,配置参数。详情请参见插入变量。 单击“选择”。 表3 UDP协议报文参数 参数 参数说明 IP 发送请求到被测服务器的IP地址。 端口号 发送请求到被测服务器的端口号。 返回结束设置 通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。 返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。 结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成 。 说明: 结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。 内容格式 请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。 说明: 16进制码流的内容取值范围为“0~9”和“a~f”,且总字符个数为双数。 如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 在请求内容输入框内输入“$”。 在“插入变量”对话框中,配置参数。详情请参见插入变量。 单击“选择”。 表4 HLS协议报文参数 参数 参数说明 流媒体地址 视频源的地址,比如“http://域名/路径”。 播放时长(秒) 模拟播放的时长。 说明: 用例调试时,播放时长会设置为3秒。 直播缓冲等待请求时间间隔(毫秒) 直播场景下,视频播放源无新数据时候,尝试获取新数据的时间间隔。 直播缓冲等待请求的最大次数 直播场景下,视频播放源无新数据时候,尝试获取新数据的最大次数,如果超过最大次数,则判断为失败。 表5 RTMP协议报文参数 参数 参数说明 请求方式 推流:将现场的视频信号传到网络的过程。 拉流:服务器里面有流媒体视频文件,用指定地址进行拉取的过程。 请求方式为“推流”时设置以下参数。 流媒体服务器地址 被测流媒体服务器的IP地址。 端口号 被测流媒体服务器监听的端口号,RTMP协议默认为1935。 应用名称 即推流URL中的AppName,直播流媒体文件存放路径,例如:live。 流名称 即推流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。 推流时长(秒) 模拟主播推流的时长,单位:秒。 视频源地址 用来存放模拟直播推流的视频源文件的OBS地址。目前仅支持flv文件格式,且不支持H.265编码的非标准flv文件。 请求方式为“拉流”时设置以下参数。 流媒体服务器地址 被测流媒体服务器的IP地址。 端口号 被测流媒体服务器监听的端口号,RTMP协议默认为1935。 应用名称 即拉流URL中的AppName,直播流媒体文件存放路径,例如:live。 流名称 即拉流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。 播放时长(秒) 模拟观众观看直播的时长,单位:秒。 表6 WEBSOCKET协议报文参数 参数 参数说明 请求方法 Connect:与压测网站建立WebSocket连接。 DisConnect:关闭与压测网站的连接。 Pong:向压测网站发送pong。 Ping&Pong:向压测网站发送pong期望返回ping。 Request:向压测网站发送请求并接收响应。 ReadOnly:仅接收压测网站发送的信息。 WriteOnly:仅向压测网站发送信息。 请求连接地址 WebSocket连接的URL地址,比如“ws://域名/路径”,支持加密请求,即“wss://域名/路径”。 连接超时(ms) 发起连接,服务器无响应的超时时间。连接超时时间范围是20ms到60s。 说明: 仅当“请求方法”为“Connect”时,需要设置该参数。 状态码 自定义关闭连接对应的状态码。默认值为1000,输入范围为0~4999。 说明: 仅当“请求方法”为“DisConnect”时,需要设置该参数。 请求类型 请根据被测服务器的业务请求内容,下拉选择“Text”或“Binary”。 说明: Binary表示十六进制。 仅当“请求方法”为“Request/WriteOnly”时,需要设置该参数。 请求内容 根据请求类型中设定格式输入请求信息报文内容。 说明: 仅当“请求方法”为“Request/WriteOnly”时,需要设置该参数。 当请求内容为文本类型时,支持变量输入,详情请参见插入变量。 响应类型 请根据被测服务器的业务响应内容,下拉选择“Text”或“Binary”。 说明: Binary表示十六进制。 仅当“请求方法”为“Request/ReadOnly”时,需要设置该参数。 响应超时(ms) 连接建立成功,等待响应返回的超时时间。返回超时时间范围是20ms到60s。 请求头 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域作要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。 单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。 单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。 表7 HTTP-FLV协议报文参数 参数 参数说明 流媒体地址 视频源的地址,比如“http://{视频源ip}:8080/live/stream.flv”。 播放时长 模拟播放的时长。 说明: 用例调试时,播放时长会设置为3秒。 表8 MQTT协议报文参数 参数 参数说明 请求方法 Connect:与压测网站建立MQTT连接。 Publish:发布消息。 Subscribe:订阅发送的消息。 DisConnect:关闭与压测网站的MQTT连接。 请求方法为“Connect”时设置以下参数。 MQTT版本 MQTT的版本,当前支持3.1、3.1.1版本。 传输地址 MQTT服务器地址,地址支持TCP、SSL、WS、WSS协议。 超时时间(ms) 客户端建立连接、发送消息等相关操作的超时时间。 客户端ID MQTT客户端ID。通过“添加随机后缀”开关,可以设置客户端ID是否添加随机后缀。 用户名 MQTT客户端设置的用户名。用户名为敏感参数,请通过敏感参数模式的全局变量设值。 密码 MQTT客户端设置的密码。密码为敏感参数,请通过敏感参数模式的全局变量设值。 连接保活时长(s) 活动心跳间隔时间,单位为秒。 清空会话 打开开关,客户端和服务器之间建立连接时,会清空上一次连接所保留的会话信息。 关闭开关,客户端和服务器之间建立连接时,不会清空上一次连接所保留的会话信息。 添加遗嘱 打开开关,添加遗嘱。当客户端异常断开连接时,MQTT代理会自动将该遗嘱消息发布给其他订阅者。 添加遗嘱时设置以下参数: 主题:遗嘱的主题。 类型:支持Text和Hex类型,可以配置是否添加时间戳。 内容:遗嘱的内容。 QoS级别:服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。 保留遗嘱:打开开关,客户端订阅后马上就会收到设置的遗嘱信息;关闭开关,发布遗嘱信息的客户端发生意外断开之后,订阅了该客户端遗嘱信息的客户端才可收到遗嘱消息。 关闭开关,无遗嘱发送。 请求方法为“Publish”时设置以下参数。 主题 发布消息的主题。 QoS级别 服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。 请求类型 支持Text和Hex类型,可以配置是否添加时间戳。 请求内容 请求的详细内容。 超时时间(ms) 客户端发送消息的超时时间。 保留消息 打开开关,客户端断开连接时发布的消息仍会保留在服务器。 关闭开关,客户端断开连接时发布的消息会被清除。 请求方法为“Subscribe”时设置以下参数。 订阅主题 订阅消息的主题,应与发布消息的主题匹配。 QoS级别 服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。 响应类型 支持Text和Hex类型,可以配置是否添加时间戳。 超时时间(ms) 订阅主题的超时时间。 结束条件 达到该条件时,结束订阅消息。 触发耗时上限:达到设置的耗时上限时结束订阅消息。 触发收到消息数上限:达到设置的收到消息数上限时结束订阅消息。 请求方法为“Disconnect”时无需设置参数。 配置完成后,单击“保存”。
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 操作步骤 首次创建测试资源,需父账号授权,自动创建委托使性能测试服务可以操作用户CCE。 需要使用性能测试服务的用户,需要CodeArts PerfTest Administrator或CodeArts PerfTest Developer权限(仅能查看自己创建的工程)。 需要管理私有资源组的用户,需要CodeArts PerfTest Administrator或CodeArts PerfTest Developer+CodeArts PerfTest Resource Administrator权限。 需要使用私有资源组的用户,需要CodeArts PerfTest Administrator或CodeArts PerfTest Developer+CodeArts PerfTest Resource Developer权限。 使用性能测试服务依赖的权限及具体使用场景,详见使用性能测试服务需要哪些权限。 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。 (可选)首次使用时,请根据提示信息,授权性能测试服务创建私有资源组。 进入创建资源组页面后,如果是首次使用没有云容器引擎服务CCE集群,需要先执行4创建集群然后再创建资源组。如果已有可用的云容器引擎服务CCE集群,直接执行5创建资源组。 创建集群。 单击页面上方的“创建集群”,进入购买CCE集群页面。创建集群操作请参考购买CCE集群,设置集群参数。 集群管理规模选择与执行节点个数相关,请根据需要压测的并发用户数,创建对应规格的节点。例如,需要20个执行节点,那么创建集群时集群规模选择50节点即可满足业务需求。 CCE集群的网络模型建议选择“容器隧道网络”,容器网段和服务网段需要与被测对象保持一致。 单击“下一步:插件配置”,默认选择即可。 单击“下一步:规格确认”,确认集群配置信息无误后,勾选已阅读使用说明,单击“提交”等待集群创建,集群创建预计需要6-10分钟。 集群创建成功后,返回集群管理页面,单击“创建节点”,进入创建节点页面。创建节点操作请参考创建节点,设置节点参数。 节点规格至少为vCPU为4核,内存8GB。 操作系统需选择欧拉EulerOS。 创建的节点数量至少需要2台(1台调试节点、1台执行节点),具体数量由压测对象要求规格决定。例如,压测10万并发用户数,vCPU为4核,内存8GB的资源需要21个执行节点(1个调试节点,20个执行节点)。 当CCE集群节点与被测应用不在同一VPC网络时,建议CCE集群节点绑定弹性IP。可使用已有的弹性IP,如果没有弹性IP也可以选择自动创建。自动创建弹性IP时,计费方式推荐按流量计费,带宽设置尽可能选择较大值,否则可能影响压测效果。系统根据您的配置创建弹性IP,并自动为每个节点进行分配。当创建的弹性IP数量小于节点个数时,会将弹性IP随机绑定到节点上。 单击“下一步:规格确认”,确认节点配置信息无误后,勾选已阅读使用说明,单击“提交”等待节点创建。节点创建成功后,返回性能测试服务控制台。 创建资源组。 在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。 参照表1设置基本信息。 表1 创建私有资源组 参数 参数说明 资源组名称 新建私有资源组的名称,可自定义。 节点集群 在下拉框选择已创建的CCE集群。 高级配置 可选项,配置项详见高级配置。 说明: 该功能为白名单特性,需要联系后台管理人员申请开通,审批同意后方可使用。 修改高级配置参数,可能导致任务无法正常执行,请谨慎修改。 调试节点 执行压测的调试机。 调试节点在资源组创建成功后不可修改。 执行节点 执行压测的执行机,即在压测过程中能够提供自身性能数据的施压目标机器。 单击“创建”。
  • 正则表达式响应提取示例 示例一 例如,前一个报文响应的报文内容如下所示: "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,取到希望得到的值。
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。 在“响应提取”页签,参照表1设置基本信息。 表1 响应提取参数 参数 参数说明 启用响应提取 启用响应提取后,如果同一用例中存在多个报文,通过正则表达式或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。 表2 常用正则表达式介绍 正则表达式 说明 示例 (\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 (可选)一个请求信息可包含1个或多个变量,如果您的请求信息需要添加多个变量,请单击“添加变量”,再设置变量的相关参数。 配置完成后,单击“保存”。
  • 插入变量 添加请求信息时,在输入框内输入“$”,插入变量。 “变量类型”为“自定义变量”时,需要设置如下参数: 变量范围:选择变量范围。 变量名称:自定义变量名称。自定义变量名称为添加变量时为变量取的名称。 “变量类型”为“系统变量”时,需要选择函数名称: 身份证号:随机生成一个身份证号。 手机号:随机生成一个手机号。 区间随机数:根据用户输入区间,随机生成区间内的任一整数。 随机字符串:根据用户输入的位数(1-32),随机生成小写字母和数字混合的字符串。 时间戳:根据用户选择(秒(s)/毫秒(ms)),生成执行时当前时间戳(秒(s)对应10位,毫秒(ms)对应13位)。 时间格式化:根据指定格式输出当前时间,支持时间偏移(单位为秒)。 时间格式化格式说明如下: "yyyy":表示四位数的年份,例如2024年:2024 "yy":表示两位数的年份,例如2024年:24 "MM":表示两位数的月份,例如1月:01 "M":表示前不补零的月份,例如1月:1 "dd":表示两位数的日期,例如3日:03 "d":表示前不补零的日期,例如3日:3 "HH":表示24小时制的小时数,例如下午1点:13 "H":同HH "hh":表示12小时制的小时数,例如1点:01 "h":表示前不补零的24小时制小时数,例如1点:1 "mm":表示分钟数,例如4分:04 "m":表示前不补零的分钟数,例如4分:4 "ss":表示秒数,例如5秒:05 "s":表示前不补零的秒数,例如5秒:5 "SSS":表示毫秒数,例如98毫秒:098 UUID:随机生成一个32位的字符串。 “变量类型”为“加密函数”时,需要选择加密类型和变量插入的位置,加密类型如下: 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解码,返回解码后的数据字符串。 父主题: 设置全局变量(高性能测试工程)
  • 报告总览 测试报告说明如表1所示。 测试报告展现了测试过程中被测系统在模拟高并发用户的响应性能,为了更好阅读测试报告,请参考以下信息: 统计维度:测试报告的RPS、响应时间、并发等统计维度均为单个用例,如用例中有请求多个报文,只有在多个请求报文均正常返回会认为成功,响应时间也是多个请求报文的求和值。 响应超时:出现该情况是在设置的响应超时时间内(默认5s),对应的TCP连接中没有响应数据返回时,会将本次用例请求统计为响应超时。出现原因一般是被测服务器繁忙、崩溃、网络带宽被占满等。 校验失败:从服务器返回的响应报文不符合预期(针对HTTP/HTTPS默认的预期响应码为200),比如服务器返回404、502等。出现原因一般为高并发情况下被测服务无法正常处理导致的,如分布式系统中数据库出现瓶颈、后端应用返回错误等。 解析失败:响应报文已全部接收完成,但是部分报文丢失导致整个用例响应不完整,这种情况一般需要考虑网络丢包。 带宽统计:本报告统计的是性能测试服务执行端的带宽,上行表示从性能测试服务发出的流量,下行表示接收到的流量。如果是外网压测场景,您需要关注执行机的EIP带宽是否可以满足上行带宽的要求。而下行带宽需要关注单台执行机是否超过1GB。 RPS:Requests Per Second,每秒请求数。平均RPS=统计周期内的请求总数/统计周期。 SLA结果: 当测试用例配置SLA规则后,您可以在SLA报告中查看SLA规则是否被触发。SLA报告中,请求名称为测试用例中请求的名称,规则为已配置的SLA规则。平均值(运行中的任务显示为当前值)代表测试用例从开始压测到目前为止,业务指标的平均值,以及触发SLA规则的总次数。触发事件显示触发SLA规则的时间、请求名称和当前的触发次数。 如何判断被测应用优劣:根据应用本身的服务质量定义,理想状态是没有任何响应失败、校验失败的情况,如果有,需要在服务质量定义范围之内,通常情况下不超过1%,同时响应时间越低越好(2s内体验较好,5s内可以接受,超过5s则需要考虑优化),TP90、TP99指标可以客观反映出90%、99%用户的体验响应时间。 表1 测试报告说明 参数 参数说明 各项指标总量 所有用例各项指标总量的汇总。 最大并发:最大并发操作的虚拟用户数。 RPS:每秒请求数。 响应时间:指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间。 响应码:记录压测任务进行中响应码分布的情况。 带宽:记录压测任务运行所消耗的实时带宽变化。 SLA事件:SLA中定义的事件发生情况。 正常返回:如设置了检查点,检查点通过的用例响应数,如未设置默认为返回2XX的用例响应数。 异常返回:解析失败、校验失败、响应超时、3XX、4XX、5XX、连接被拒绝的用例响应数。 成功率:正常返回请求数/总请求数。 平均RPS 统计周期内的请求总数/统计周期。 平均RT 某一秒发出的所有请求的平均响应时间。 并发数 记录压测任务运行时,当前并发操作的虚拟用户数的变化。 带宽(KB/S) 记录压测任务运行所消耗的实时带宽变化。 上行带宽:从性能测试服务测试执行机往外发送出去数据的速度。 下行带宽:性能测试服务测试执行机接收到数据的速度。 响应状态分布 正常返回、解析失败、校验失败、响应超时、连接被拒绝和其他错误的每秒处理用例数,该项指标与思考时间、并发用户、服务器响应能力均有关,比如思考时间为500ms,如果服务器对于当前用户的上个请求响应时间小于500ms,则该用户每秒请求2次。 正常返回:如设置了检查点,检查点通过的用例响应数,如未设置默认为返回2XX的用例响应数。 异常返回:解析失败、校验失败、响应超时、3XX、4XX、5XX、连接被拒绝的用例响应数。 解析失败:HTTP响应无法被正常解析的数量。 校验失败:如设置了检查点,检查点未通过的用例响应数,如未设置,返回不是2XX的用例响应数。 响应超时:在请求报文发送5S内未收到服务器响应的用例请求数量。 连接被拒绝:发送报文建立连接时,服务器拒绝连接数。 其他错误:不属于以上几种错误的数量。 响应码分布 1XX/2XX/3XX/4XX/5XX。 响应时间区间比例 用例的响应时间区间比例。 TP最大响应时间 指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取对应的百分比的那个值作为TPXX的最大响应时间。 TP50:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50的值。 TP75:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第75%的那个值作为TP75的值。 TP90:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第90%的那个值作为TP90的值。 TP95:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第95%的那个值作为TP95的值。 TP99:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99%的那个值作为TP99的值。 TP99.9:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99.9%的那个值作为TP99.9的值。 TP99.99:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99.99%的那个值作为TP99.99的值。
  • 测试结果 表1 迁移 源实例类型 源实例规格(GB) 目标实例类型 目标实例规格(GB) 迁移方式 数据量(GB) 时间(min) Redis 5.0主备 8 Redis 5.0主备 8 全量迁移+增量迁移 7.78 3 Redis 5.0主备 32 Redis 5.0主备 32 全量迁移+增量迁移 31.9 17 Redis 5.0 proxy 64 Redis 5.0proxy 64 全量迁移+增量迁移 62.42 7 Redis 5.0 cluster 64 Redis 5.0cluster 64 全量迁移+增量迁移 57.69 6 Redis 5.0 proxy 256 Redis 5.0proxy 256 全量迁移+增量迁移 241.48 23 Redis 5.0 cluster 256 Redis 5.0cluster 256 全量迁移+增量迁移 240.21 22 表2 备份 实例类型 实例规格(GB) 备份方式 数据量(GB) 时间(min) Redis 5.0主备 8 rdb 7.78 2 Redis 5.0主备 32 rdb 31.9 5 Redis 5.0 proxy 64 rdb 62.42 9 Redis 5.0 proxy 256 rdb 241.48 37 Redis 5.0 cluster 64 rdb 57.69 9 Redis 5.0 cluster 256 rdb 255 39 Redis 5.0主备 8 aof 7.9 2 Redis 5.0主备 32 aof 31.15 10 Redis 5.0 proxy 64 aof 62.42 20 Redis 5.0 proxy 256 aof 241.48 48 Redis 5.0 cluster 64 aof 57.69 19 Redis 5.0 cluster 256 aof 255 51 表3 恢复 实例类型 实例规格(GB) 恢复方式 数据量(GB) 时间(min) Redis 5.0主备 8 rdb 7.9 2 Redis 5.0主备 32 rdb 31.15 6 Redis 5.0 proxy 64 rdb 62.42 10 Redis 5.0 proxy 256 rdb 246 42 Redis 5.0 cluster 64 rdb 57.69 10 Redis 5.0 cluster 256 rdb 255 40 Redis 5.0主备 8 aof 7.9 3 Redis 5.0主备 32 aof 31.15 10 Redis 5.0 proxy 64 aof 62.42 10 Redis 5.0 proxy 256 aof 246 46 Redis 5.0 cluster 64 aof 57.69 10 Redis 5.0 cluster 256 aof 255 43
  • 测试环境说明 测试实例规格: Redis 5.0 8G主备 Redis 5.0 32G主备 Redis 5.0 64G Proxy集群( 副本数:2 | 分片数:8 | 分片容量:8 GB ) Redis 5.0 256G Proxy集群( 副本数:2 | 分片数:32 | 分片容量:8 GB ) Redis 5.0 64G Cluster集群( 副本数:2 | 分片数:8 | 分片容量:8 GB ) Redis 5.0 256G Cluster集群 ( 副本数:2 | 分片数:32 | 分片容量:8 GB ) 测试执行机规格: c6s.large.2 2vCPUs | 4GB
  • 节点使用建议 用于测试资源组的节点不要运行任何应用或做其他用途,可能会导致应用运行异常。 至少需要2台空节点,1台用于压测资源组的调试机(即调试执行机的节点),1台用于压测资源组的执行机(即在压测过程中能够提供自身性能数据的施压目标机器)。请根据需要压测的并发用户数,创建对应规格的节点,PerfTest测试工程的节点规格推荐请参考表1,JMeter测试工程的节点规格推荐请参考表2。 如需要压测外部服务,请为执行节点绑定弹性IP。如需要调试外部服务,请为调试节点和执行节点都绑定弹性IP。 表1 PerfTest测试工程的节点规格推荐 并发用户数 所需规格 数量 0-5000 调试节点:4U8G 1 执行节点:4U8G 1 5001-10000 调试节点:4U8G 1 执行节点:8U16G 1 10001-20000 调试节点:4U8G 1 执行节点:8U16G 2 20001-30000 调试节点:4U8G 1 执行节点:8U16G 3 30001-40000 调试节点:4U8G 1 执行节点:8U16G 4 40001-50000 调试节点:4U8G 1 执行节点:8U16G 5 50001以上 调试节点:4U8G 1 执行节点:8U16G n 说明: 每台8U16G的执行节点可支撑10000并发。 表2 JMeter测试工程的节点规格推荐 并发用户数 所需规格 数量 0-1000 调试节点:4U8G 1 执行节点:4U8G 1 1001-2000 调试节点:4U8G 1 执行节点:8U16G 1 2001-4000 调试节点:4U8G 1 执行节点:8U16G 2 4001-6000 调试节点:4U8G 1 执行节点:8U16G 3 6001-8000 调试节点:4U8G 1 执行节点:8U16G 4 8001-10000 调试节点:4U8G 1 执行节点:8U16G 5 10001以上 调试节点:4U8G 1 执行节点:8U16G n 说明: 每台8U16G的执行节点可支撑2000并发。 以上节点规格推荐是通用规格,仅供参考。实际压测时,资源规格的需求受思考时间、压测的协议类型、请求和响应的大小数量、响应时间、结果验证等因素影响,用户可根据实际情况进行调整。 压测外部服务时,执行节点需要绑定弹性IP,测试带宽受限于购买的EIP带宽。 当集群上的节点已经被部署上了应用,创建私有资源组时,该节点无法被选用。
  • 配额限制 使用性能测试服务时,需注意以下配额限制,详情请参见表3。 表3 配额限制 参数 描述信息 默认值 单任务最大并发数 单任务最大支持并发数 1000000 实例化资源组数目配额 实例化资源组数目限制 5 事务数目配额 单工程事务数目限制 100 单事务元素数目配额 单事务元素数目限制 40 工程数目配额 租户工程数目限制 100 任务数目配额 单工程任务数目限制 200 共享资源组总并发数配额 共享资源组总并发数限制 1000 共享资源组运行任务数目配额 共享资源组运行任务数目限制 2 共享资源组运行任务时长配额 共享资源组运行任务时长限制 3600 文件变量数目配额 文件变量数目限制 100