华为云用户手册

  • WAF访问结构化模板日志详情 WAF访问日志示例 表1 结构化模板示例 模板名称 示例日志 WAF访问日志 {"response_code":"504","scheme":"http","upstream_addr":"100.93.2.229:80","body_bytes_sent":"163","upstream_header_time":"-","connection_requests":"1","ssl_cipher":"","hostid":"1736cc7331b74b198e2ef07555a970ce","pid":"2152","tls_version":"","http_host":"www.testh.com","process_time":"0","access_stream_id":"88003425-d7bc-46ce-8ae7-77a8aa18a814","time_iso8601":"2022-07-29T19:39:10+08:00","intel_crawler":"","upstream_status":"504","remote_ip":"10.63.46.110","request_time":"30.008","tenantid":"1d26cc8c86a840e28a4f8d0d07852f1d","sip":"10.63.46.110","bytes_send":"420","projectid":"2a473356cca5487f8373be891bffc1cf","user_agent":"curl/7.29.0","web_tag":"","method":"GET","bind_ip":"10.63.36.208","region_id":"","remote_port":"20582","ssl_ciphers_md5":"","x_real_ip":"","url":"/","x_forwarded_for":"","sni":"","args":"public/../style/general.css=true","cdn_src_ip":"","enterprise_project_id":"0","upstream_connect_time":"-","engine_id":"","request_length":"110","group_id":"5d574e6a-87da-42bc-bfd4-ff61a1b336a4","requestid":"36f0a9212b14528ffc090f1811cd87d8","ssl_curves":"","ssl_session_reused":"","waf-time":"2022-07-29T11:39:10.000Z","upstream_response_time":"30.008","time":"29/Jul/2022:19:39:10 +0800","category":"access","eng_ip":"10.63.36.208"} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 response_code 504 源站返回给WAF的响应状态码。 string scheme http 请求所使用的协议有: http https string upstream_addr 100.93.2.229:80 选择的后端服务器地址。例如,WAF回源到E CS ,则返回源站ECS的IP。 string body_bytes_sent 163 发送给客户端的响应体字节数 string upstream_header_time - 后端服务器接收到第一个响应头字节的用时 string connection_requests 1 连接请求 string ssl_cipher - SSL密码 string hostid 1736cc7331b74b198e2ef07555a970ce 访问请求的域名标识 string pid 2152 进程ID string tls_version - 建立SSL连接的协议版本 string http_host www.testh.com 请求的服务器域名 string process_time 0 引擎的检测用时 string access_stream_id 88003425-d7bc-46ce-8ae7-77a8aa18a814 日志流ID string time_iso8601 2022-07-29T19:39:10+08:00 日志的ISO 8601格式时间 string intel_crawler - 爬虫 string upstream_status 504 后端服务器的响应码 string remote_ip 10.63.46.110 请求的客户端IP string request_time 30.008 请求处理时间 string tenantid 1d26cc8c86a840e28a4f8d0d07852f1d 防护域名的租户ID string sip 10.63.46.110 客户端请求IP string bytes_send 420 发送给客户端的总字节数 string projectid 2a473356cca5487f8373be891bffc1cf 防护域名的项目ID string user_agent curl/7.29.0 请求header中的 user-agent string web_tag - 网站名称 string method GET 请求方法 string bind_ip 10.63.36.208 WAF引擎回源IP string region_id - 请求所属区域 string remote_port 20582 远程端口 string ssl_ciphers_md5 - ssl_ciphers 的 md5 值 string x_real_ip - 当WAF前部署代理时,真实的客户端IP string url / 请求URL string x_forwarded_for - 请求头中x_forwarded_for的内容 string sni - 通过SNI请求的域名 string args public/../style/general.css=true URL 中的参数数据 string cdn_src_ip - 当WAF前部署CDN时CDN识别到的客户端IP string enterprise_project_id 0 请求域名所属企业项目ID string upstream_connect_time - 后端服务器连接用时 string engine_id - WAF引擎标识 string request_length 110 请求的长度 string group_id 5d574e6a-87da-42bc-bfd4-ff61a1b336a4 对接LTS服务的日志组ID string requestid 36f0a9212b14528ffc090f1811cd87d8 随机ID标识 string ssl_curves - 客户端支持的曲线列表 string ssl_session_reused - SSL会话是否被重用 string waf-time 2022-07-29T11:39:10.000Z WAF日志时间 string upstream_response_time 30.008 后端服务器响应时间 string time 29/Jul/2022:19:39:10 +0800 访问请求的时间 string waf_category access WAF日志类别 string eng_ip 10.63.36.208 WAF引擎IP string
  • 继承批量安装(Linux环境) 您有多个服务器需要安装ICAgent,其中一个服务器已经通过首次安装方式装好了ICAgent,且该服务器“/opt/ICAgent/”路径下存在ICAgent的安装包ICProbeAgent.tar.gz,对于没有安装ICAgent的服务器,可以通过该方式对服务器进行一键式继承批量安装。 批量安装的服务器需同属一个VPC下,并在同一个网段中。 批量安装功能依赖python3.*版本,如果安装时提示找不到python请安装python版本后重试。
  • 使用限制 Linux环境:支持安装ICAgent的Linux操作系统。 Windows环境:仅支持在如下64位系统的Windows环境中安装ICAgent。 Windows Server 2016 R2 Datacenter Windows Server 2016 R2 Standard Windows Server 2016 Datacenter English Windows Server 2016 R2 Standard English Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard Windows Server 2012 Datacenter English Windows Server 2012 R2 Standard English Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 Enterprise English Windows Server 2008 R2 Standard English Windows环境不支持在 云日志 服务主机管理界面对ICAgent进行升级和卸载操作,只支持日志采集功能。如果需要使用新版本,请先卸载旧版本ICAgent,再安装新版本ICAgent即可。
  • 结构化模板日志详情 DCS审计日志结构化模板示例 表1 结构化模板示例 模板名称 示例日志 DCS审计日志 {"time": 1640966500017, "instance_id": "199a1e5a-8a37-40b9-899e-0ab6805c69eb", "server_addr": "192.168.0.1", "role": "proxy", "client_addr": "10.0.0.1", "client_type": "0", "user": "default", "db": 1, "command_name": "DEL", "command_type": "string", "command_keys": ["key1", "key2", "key3"], "command_param": "DEL key1 key2 key3", "use_time": 500, "extend": ""} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 time 1640966500017 时间 long instance_id 199a1e5a-8a37-40b9-899e-0ab6805c69eb 实例的ID string server_addr 192.168.0.1 服务端IP string role proxy 节点角色 string client_addr 10.0.0.1 客户端IP string client_type 0 客户端类型 string user default 账号名 string db 1 数据库DB long command_name DEL 执行命令 string command_type string 命令类型 string command_keys [\"key1\",\"key2\",\"key3\"] 命令KEYS string command_param DEL key1 key2 key3 命令内容 string use_time 500 执行耗时 long extend - 扩展信息 string
  • 自定义模板 在“选择模板”下,选择“自定义模板”,选择已有的结构化模板。模板来源有以下两种方式: 在配置正则分析、JSON、分隔符或Nginx方式时单击左下角的“另存为模板”,系统会弹出“另存模板”页面,输入模板名称,单击“确定”,完成自定义模板的保存,会在“自定义模板”下的模板列表看到该模板。 新增结构化模板,具体操作如下: 在“选择模板”下,选择“自定义模板”,单击“新增结构化模板”,在“新增结构化模板”界面选择正则分析、JSON、分隔符或Nginx方式,进行配置,配置完成后输入模板名称,单击“确定”。完成自定义模板的保存,会在“自定义模板”下的模板列表看到该模板。
  • CDN支持的监控指标 表1 CDN支持的监控指标列表 指标ID 指标名称 指标描述 指标最小单位 单位进制 监控周期(原始值) bw 带宽 域名一分钟内的平均带宽( 计算方式:一分钟内流量*8/60) bit/s 1000 1分钟 flux 流量 域名一分钟内总流量 byte 1024 1分钟 bs_bw 回源带宽 域名一分钟内回源的平均带宽( 计算方式:一分钟内回源流量*8/60) bit/s 1000 1分钟 bs_flux 回源流量 域名一分钟内回源总流量 byte 1024 1分钟 bs_num 总回源次数 域名一分钟内回源次数汇总 count - 1分钟 bs_fail_num 回源失败次数 域名一分钟内回源失败次数汇总 count - 1分钟 bs_fail_rate 回源失败率 域名一分钟内回源失败次数占比( 计算方式:回源失败次数 / 总回源次数 * 100) % - 1分钟 req_num 总请求数 域名一分钟内请求次数汇总 count - 1分钟 hit_flux 命中流量 域名一分钟内命中缓存的流量 byte 1024 1分钟 hit_flux_rate 流量命中率 域名一分钟内命中缓存流量的占比( 计算方式:命中流量 / 流量 * 100) % - 1分钟 http_code_2xx 状态码汇总2xx 域名一分钟内HTTP状态码2xx次数汇总 count - 1分钟 http_code_3xx 状态码汇总3xx 域名一分钟内HTTP状态码3xx次数汇总 count - 1分钟 http_code_4xx 状态码汇总4xx 域名一分钟内HTTP状态码4xx次数汇总 count - 1分钟 http_code_5xx 状态码汇总5xx 域名一分钟内HTTP状态码5xx次数汇总 count - 1分钟 http_code_2xx_rate 状态码2xx占比 域名一分钟内HTTP状态码2xx次数占比( 计算方式:状态码汇总2xx / 总请求数 * 100) % - 1分钟 http_code_3xx_rate 状态码3xx占比 域名一分钟内HTTP状态码3xx次数占比( 计算方式:状态码汇总3xx / 总请求数 * 100) % - 1分钟 http_code_4xx_rate 状态码4xx占比 域名一分钟内HTTP状态码4xx次数占比( 计算方式:状态码汇总4xx / 总请求数 * 100) % - 1分钟 http_code_5xx_rate 状态码5xx占比 域名一分钟内HTTP状态码5xx次数占比( 计算方式:状态码汇总5xx / 总请求数 * 100) % - 1分钟 bs_http_code_2xx 状态码汇总回源2xx 域名一分钟内HTTP状态码2xx回源次数汇总。 count - 1分钟 bs_http_code_3xx 状态码汇总回源3xx 域名一分钟内HTTP状态码3xx回源次数汇总。 count - 1分钟 bs_http_code_4xx 状态码汇总回源4xx 域名一分钟内HTTP状态码4xx回源次数汇总。 count - 1分钟 bs_http_code_5xx 状态码汇总回源5xx 域名一分钟内HTTP状态码5xx回源次数汇总。 count - 1分钟 bs_http_code_2xx_rate 状态码回源2xx占比 域名一分钟内HTTP状态码2xx回源次数占比。(计算方式:状态码汇总回源2xx / 总回源请求数 * 100) % - 1分钟 bs_http_code_3xx_rate 状态码回源3xx占比 域名一分钟内HTTP状态码3xx回源次数占比。(计算方式:状态码汇总回源3xx / 总回源请求数 * 100) % - 1分钟 bs_http_code_4xx_rate 状态码回源4xx占比 域名一分钟内HTTP状态码4xx回源次数占比。(计算方式:状态码汇总回源4xx / 总回源请求数 * 100) % - 1分钟 bs_http_code_5xx_rate 状态码回源5xx占比 域名一分钟内HTTP状态码5xx回源次数占比。(计算方式:状态码汇总回源5xx / 总回源请求数 * 100) % - 1分钟 http_code_400 状态码400 域名一分钟内HTTP状态码400次数汇总。 count - 1分钟 http_code_403 状态码403 域名一分钟内HTTP状态码403次数汇总。 count - 1分钟 http_code_404 状态码404 域名一分钟内HTTP状态码404次数汇总。 count - 1分钟 http_code_416 状态码416 域名一分钟内HTTP状态码416次数汇总。 count - 1分钟 http_code_499 状态码499 域名一分钟内HTTP状态码499次数汇总。 count - 1分钟 http_code_500 状态码500 域名一分钟内HTTP状态码500次数汇总。 count - 1分钟 http_code_502 状态码502 域名一分钟内HTTP状态码502次数汇总。 count - 1分钟 http_code_503 状态码503 域名一分钟内HTTP状态码503次数汇总。 count - 1分钟 http_code_504 状态码504 域名一分钟内HTTP状态码504次数汇总。 count - 1分钟 http_code_400_rate 状态码400占比 域名一分钟内HTTP状态码400次数占比。( 计算方式:状态码400 / 总请求数 * 100) % - 1分钟 http_code_403_rate 状态码403占比 域名一分钟内HTTP状态码403次数占比。( 计算方式:状态码403 / 总请求数 * 100) % - 1分钟 http_code_404_rate 状态码404占比 域名一分钟内HTTP状态码404次数占比。( 计算方式:状态码404 / 总请求数 * 100) % - 1分钟 http_code_416_rate 状态码416占比 域名一分钟内HTTP状态码416次数占比。( 计算方式:状态码416 / 总请求数 * 100) % - 1分钟 http_code_499_rate 状态码499占比 域名一分钟内HTTP状态码499次数占比。( 计算方式:状态码499 / 总请求数 * 100) % - 1分钟 http_code_500_rate 状态码500占比 域名一分钟内HTTP状态码500次数占比。( 计算方式:状态码500 / 总请求数 * 100) % - 1分钟 http_code_502_rate 状态码502占比 域名一分钟内HTTP状态码502次数占比。( 计算方式:状态码502 / 总请求数 * 100) % - 1分钟 http_code_503_rate 状态码503占比 域名一分钟内HTTP状态码503次数占比。( 计算方式:状态码503 / 总请求数 * 100) % - 1分钟 http_code_504_rate 状态码504占比 域名一分钟内HTTP状态码504次数占比。( 计算方式:状态码504 / 总请求数 * 100) % - 1分钟 bs_http_code_400 回源状态码400 域名一分钟内HTTP回源状态码400次数汇总。 count - 1分钟 bs_http_code_403 回源状态码403 域名一分钟内HTTP回源状态码403次数汇总。 count - 1分钟 bs_http_code_404 回源状态码404 域名一分钟内HTTP回源状态码404次数汇总。 count - 1分钟 bs_http_code_416 回源状态码416 域名一分钟内HTTP回源状态码416次数汇总。 count - 1分钟 bs_http_code_499 回源状态码499 域名一分钟内HTTP回源状态码499次数汇总。 count - 1分钟 bs_http_code_500 回源状态码500 域名一分钟内HTTP回源状态码500次数汇总。 count - 1分钟 bs_http_code_502 回源状态码502 域名一分钟内HTTP回源状态码502次数汇总。 count - 1分钟 bs_http_code_503 回源状态码503 域名一分钟内HTTP回源状态码503次数汇总。 count - 1分钟 bs_http_code_504 回源状态码504 域名一分钟内HTTP回源状态码504次数汇总。 count - 1分钟 bs_http_code_400_rate 回源状态码400占比 域名一分钟内HTTP回源状态码400次数占比。( 计算方式:回源状态码400 / 总回源请求数 * 100) % - 1分钟 bs_http_code_403_rate 回源状态码403占比 域名一分钟内HTTP回源状态码403次数占比。( 计算方式:回源状态码403 / 总回源请求数 * 100) % - 1分钟 bs_http_code_404_rate 回源状态码404占比 域名一分钟内HTTP回源状态码404次数占比。( 计算方式:回源状态码404 / 总回源请求数 * 100) % - 1分钟 bs_http_code_416_rate 回源状态码416占比 域名一分钟内HTTP回源状态码416次数占比。( 计算方式:回源状态码416 / 总回源请求数 * 100) % - 1分钟 bs_http_code_499_rate 回源状态码499占比 域名一分钟内HTTP回源状态码499次数占比。( 计算方式:回源状态码499 / 总回源请求数 * 100) % - 1分钟 bs_http_code_500_rate 回源状态码500占比 域名一分钟内HTTP回源状态码500次数占比。( 计算方式:回源状态码500 / 总回源请求数 * 100) % - 1分钟 bs_http_code_502_rate 回源状态码502占比 域名一分钟内HTTP回源状态码502次数占比。( 计算方式:回源状态码502 / 总回源请求数 * 100) % - 1分钟 bs_http_code_503_rate 回源状态码503占比 域名一分钟内HTTP回源状态码503次数占比。( 计算方式:回源状态码503 / 总回源请求数 * 100) % - 1分钟 bs_http_code_504_rate 回源状态码504占比 域名一分钟内HTTP回源状态码504次数占比。( 计算方式:回源状态码504 / 总回源请求数 * 100) % - 1分钟
  • 修订记录 发布日期 修订记录 2024-03-31 第六十二次正式发布。 购买实例的参数说明更新如下: DDM实例名称支持下划线(_)。 2024-02-29 第六十一次正式发布。 慢查询,控制台支持导出慢日志文件。 查看逻辑库列表和逻辑表信息,控制台支持查看DDM实例逻辑库的磁盘大小。 2024-01-30 第六十次正式发布。 预检查,分片变更预检查项新增物理分表个数限制检查。 版本升级,“实例管理”页面新增“版本升级”按钮。 2023-12-30 第五十九次正式发布。 功能总览,更新功能总览列表。 创建账号,创建DDM账号支持密码有效期设置。 2023-11-30 第五十八次正式发布。 内核版本说明,新增内核版本说明。 2023-10-08 第五十七次正式发布。 会话管理,支持查看和结束会话。 2023-07-30 第五十六次正式发布。 查看逻辑库列表和逻辑表信息,新增查看逻辑库表结构。 分片变更操作指导,支持独占式分片变更方式。 2023-06-09 第五十五次正式发布。 新增事件监控。 2023-05-17 第五十四次正式发布。 MOD_HASH算法,MOD_HASH_CI算法和HASH算法增加注意事项。 2023-04-03 第五十三次正式发布。 新增实例状态。 2023-03-31 第五十二次正式发布。 新增版本升级。 新增版本回滚。 2023-02-16 第五十一次正式发布。 分片变更新增任务详情功能。 DN管理新增手动开启读写分离功能。 2023-02-01 第五十次正式发布。 数据库端口修改为DDM服务端口。 创建逻辑库增加DDM账号需创建成功的限制条件。 2023-01-17 第四十九次正式发布。 新增Online DDL。 2022-11-22 第四十八次正式发布。 新增数据库账号权限说明。 2022-11-01 第四十七次正式发布。 创建逻辑库、分片变更、备份恢复等章节添加说明内容和限制条件。 2022-09-29 第四十六次正式发布。 优化恢复到新实例和Metadata恢复章节。 2022-09-20 第四十五次正式发布。 创建逻辑库和分片变更操作指导章节增加关联数据节点状态需为只读状态的条件。 2022-08-18 第四十四次正式发布。 优化数据迁移章节。 优化支持审计的关键操作列表章节。 2022-08-16 第四十三次正式发布。 优化SQL语法章节。 2022-08-09 第四十二次正式发布。 增加备份原理章节。 优化全局序列概述章节。 2022-07-26 第四十一次正式发布。 优化读写分离与只读业务隔离章节的说明。 2022-07-05 第四十次正式发布。 分片变更章节新增特性概述,应用场景,变更评估和预检查等内容。 2022-06-16 第三十九次正式发布。 配置SQL黑名单章节新增正则匹配的说明。 2022-04-15 第三十八次正式发布。 数据迁移章节新增MySQL客户端版本为8.0时导出数据表结构mysqldump示例。 2022-04-02 第三十七次正式发布。 新增通过Hint指定分片直接执行SQL章节。 2022-03-29 第三十六次正式发布。 读写分离章节增加概述内容。 优化拆分算法概述与拆分算法使用说明。 监控指标章节增加连接数使用率。 2022-03-09 第三十五次正式发布。 监控指标页面格式调整。 2022-03-02 第三十四次正式发布。 新增一致性备份功能优化调整说明。 2022-02-28 第三十三次正式发布。 新增元数据恢复章节。 2022-02-23 第三十二次正式发布。 创建表章节增加拆分表的限制。 2022-01-27 第三十一次正式发布。 优化表迁移策略章节。 优化监控管理章节。 2022-01-21 第三十次正式发布。 新增DN管理章节。 优化分片变更章节。 2021-12-22 第二十九次正式发布。 增加关联更新说明。 新增慢查询章节。 2021-12-13 第二十八次正式发布。 增加函数使用限制。 增加关联更新说明。 2021-12-03 第二十七次正式发布。 增加一致性备份说明内容。 优化表数据重载内容。 2021-11-19 第二十六次正式发布。 新增节点重启。 修改实例监控指标。 2021-11-16 第二十五次正式发布。 修改SQL语法,增加插入和更新时的语法限制。 2021-11-10 第二十四次正式发布。 修改查看实例监控指标,增加指标英文名称。 2021-10-29 第二十三次正式发布。 新增 修改实例和组内网地址。 新增 绑定和解绑弹性公网IP 。 修改 DDL概述,父章节内容移动到子章节。 修改 不支持的DML语法列举,父章节内容移动到子章节。 修改 补充说明,父章节内容移动到子章节。 修改 全局序列概述,父章节内容移动到子章节。 2021-08-03 第二十二次正式发布。 修改创建逻辑库,增加限制说明。 修改分片变更,增加分片变更说明。 修改什么是只读业务隔离,增加创建组相关说明。 修改全局序列,增加“刷新实例所有表自增序列”命令。 2021-07-22 第二十一次正式发布。 根据界面,替换资料截图。 2021-07-16 第二十次正式发布。 新增MOD_HASH_CI算法。 修改创建逻辑库的账号规则。 细化读写分离功能的说明。 2021-07-12 第十九次正式发布。 删除DDM版本为2.3.X导出表结构和导出表数据的相关内容。 2021-06-25 第十八次正式发布。 新增修改表test全局序列的cache内容。 补充读写分离功能关于读请求的说明。 2021-06-07 第十七次正式发布。 新增访问控制章节,优化访问控制功能。 修改计算节点扩容章节,增加扩容可指定可用区的描述。 2021-05-25 第十六次正式发布。 修改12.1-监控指标,指标的描述避免使用华为内部用词,避免描述不到位、有歧义的情况。 2021-05-13 第十五次正式发布。 修改场景四:从DDM实例导出数据。 修改读写分离操作指导,关联数据库可以单击实例名称直接跳转到RDS/ GaussDB (for MySQL)实例页面,替换截图。 2021-05-11 第十四次正式发布。 增加只读业务隔离。 修改变更规格、计算节点扩容、计算节点缩容入口。 2021-04-30 第十三次正式发布。 修改HINT-DB/TABLE章节,命令格式。 增加只读业务隔离章节。 2021-04-20 第十二次正式发布。 补充其他不支持语句。 2021-04-09 第十一次正式发布。 新增审计章节。 2021-03-08 第十次正式发布。 修改分片表为拆分表。 修改监控指标描述:“数据面服务Core”改成“DDM服务” 参数模板管理加入复制和应用场景 。 实例管理加入设置参数模板场景。 新增功能总览章节。 2021-01-15 第九次正式发布。 重构目录。 增加分库分表语法。 完善DDL语法。 2020-12-29 第八次正式发布。 增加全局序列。 2020-11-30 第七次正式发布 修改全局表为广播表。 新增任务中心章节。 2020-11-02 第六次正式发布 修缮了SQL兼容性部分语句的前提条件等内容。 2020-10-20 第五次正式发布 新增一致性备份、节点扩容、节点缩容、数据恢复等内容。 2020-09-10 第四次正式发布 刷新参数配置管理、增加节点缩容、数据迁移等内容。 2020-08-07 第三次正式发布 增补SQL兼容性内容、权限管理等内容。 2020-06-30 第二次正式发布。 新增平滑扩容、SQL兼容性等内容。 2020-05-30 DDM 2.0第一次正式发布。
  • 请求示例 批量停止实例。 POST https://rds.cn-north-1.myhuaweicloud.com/v3/054ea741f700d4a32f1bc00f5c80dd4c/instances/batch/action/shutdown { "instance_ids" : [ "5b409baece064984a1b3eef6addae50cin01" ] }
  • 响应消息 正常响应要素说明 表3 要素说明 名称 参数类型 说明 records List 停止结果记录。 详情请参见表4。 表4 records字段说明 名称 参数类型 说明 instance_id String 实例ID。 job_id String 任务ID。 正常响应样例 { "records": [ { "instance_id": "5b409baece064984a1b3eef6addae50cin01", "job_id": "2b414788a6004883a02390e2eb0ea227" } ] } 异常响应 请参见异常请求结果。
  • 接口约束 如需批量停止实例,请联系客服申请。 最多支持批量停止50个实例。 该接口仅支持MySQL引擎。 Serverless型实例不支持该接口。 仅支持停止存储类型为超高IO、SSD云盘、极速型SSD的按需实例,专属云RDS不支持停止实例。 已停止的实例被删除后不会进入回收站。 停止主实例时,如果存在只读实例,会同时停止只读实例。不支持单独停止只读实例。对于华东-上海一区域,主实例和只读实例均默认停止十五天。对于除华东-上海一外的其他区域,主实例和只读实例均默认停止七天。 对于华东-上海一区域,实例默认停止十五天,如果您在十五天后未手动开启实例,数据库实例将于十五天后的下一个可维护时间段内自动启动。 对于除华东-上海一外的其他区域,实例默认停止七天,如果您在七天后未手动开启实例,数据库实例将于七天后的下一个可维护时间段内自动启动。 实例停止后,虚拟机(VM)停止收费,其余资源包括弹性公网IP(EIP)、存储资源、备份正常计费。 实例在以下状态不能执行停止实例: 创建、重启、扩容、变更规格、恢复、修改端口等不能进行此操作。
  • 约束限制 账户余额大于等于0元,才可设置自动扩容。 实例状态为“正常”和“存储空间满”时可以进行扩容。 如需开通存储空间自动扩容的权限,请联系客服申请。 仅支持RDS for PostgreSQL云盘实例,即存储类型为SSD云盘或极速型SSD。存储类型介绍请参见数据库实例存储类型。 云数据库 RDS for PostgreSQL实例最大可自动扩容至4000GB。 如果是主备实例,针对主节点设置自动扩容时,会同时对其备节点生效。 实例在进行规格变更、内核小版本升级、备机迁移、重启时,不能进行此操作。 包周期实例存在未完成订单时,不会自动扩容。
  • 操作场景 RDS for PostgreSQL云盘实例支持存储空间自动扩容,在实例存储空间达到阈值时,会触发自动扩容。 只读实例设置自动扩容与主实例自动扩容互不影响,因此,您需要单独为只读实例设置扩容,以满足业务需求。对只读实例设置自动扩容时,您可选择大于或等于主实例的存储空间。 设置存储空间自动扩容有两种方式: 创建实例时设置存储空间自动扩容。详情请参见购买RDS for PostgreSQL实例。 创建实例后设置存储空间自动扩容。本章节介绍创建实例后如何设置存储空间自动扩容。
  • 代码示例 @Controller @RequestMapping("/api") public class TestController { @GetMapping("/testApi") public String test(HttpServletRequest request) { String token = request.getHeader("Authorization"); String issuer = verifyAndReturnIssuer(token); if (issuer.equals("user")) { return "success"; } return "error"; } }
  • 收集信息 表1 收集信息 项目 说明 私钥/公钥获取URL/密钥ID/公钥/appId 访问私钥是在CraftArts IPDCenter API交互过程身份凭证。通过私钥生成认证凭据,用于确保请求者身份的正确性。公钥获取URL自动获取公钥的地址,通过此地址,可自动获取公钥信息,用于检验认证凭据的正确性。 公钥获取URL地址为:https://域名/文根/basic/mgmt//public/api/v1/keymanage/getPublicKeyList appId、公钥、私钥与密钥ID见下面获取方式。
  • 开发过程 在Spring boot项目工程中创建一个API。 @Controller @RequestMapping("/api") public class TestController { @GetMapping("/testApi") public String test(HttpServletRequest request) { return "success"; } } 获取token并检验合法性。 @GetMapping("/testApi") public String test(HttpServletRequest request) { String token = request.getHeader("Authorization"); String issuer = verifyAndReturnIssuer(token); if (issuer.equals("user")) { return "success"; } return "error"; }
  • 约束与限制 共享流量包费用为一次性支付,即刻生效,不支持指定生效日期。 共享流量包一旦购买不支持退订,到期后也不支持续订。 共享流量包支持包月和包年,到期后剩余的流量将无法再使用。 共享流量包只能针对按需计费(按流量计费)的带宽生效,且需要区分动态BGP和静态BGP类型。动态BGP共享流量包适用于动态BGP按需计费(按流量计费)的独享带宽,静态BGP共享流量包适用于静态BGP按需计费(按流量计费)的独享带宽。 共享流量包不支持对指定的某一个EIP带宽生效。 共享流量包不支持对共享带宽生效。 共享流量包不支持用于优选BGP类型的EIP。
  • 变更配置后对计费的影响 如果您在购买增强型95计费的共享带宽后变更了共享带宽配置,会产生一个新订单并开始按新配置的价格计费,旧订单自动失效。 如果您在一个小时内变更了共享带宽配置,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同配置在该小时内的生效时间。 例如,您在9:00:00购买了一个按增强型95计费共享带宽,带宽大小500Mbit/s,并在9:30:00升配带宽大小1000Mbit/s,那么在9:00:00 ~ 10:00:00间会产生两条计费信息。 9:00:00 ~ 9:30:00,按照带宽大小500Mbit/s计费。 9:30:00 ~ 10:00:00,按照带宽大小1000Mbit/s计费。
  • 资源包抵扣顺序示例 某客户在华北-北京四区域购买了2个共享流量包,规格信息如下: 共享流量包A:动态BGP类型,规格100GB,2020年10月1日生效,购买时长2个月,即12月1日过期。 共享流量包B:动态BGP类型,规格500GB,2020年10月10日生效,购买时长2个月,即12月10日过期。 表2 抵扣顺序 时间段 抵扣顺序 10月1日~10月9日 只有共享流量包A生效。 使用共享流量包A抵扣,超出100GB部分按需计费。 10月10日~11月30日 共享流量包A、B同时生效,叠加使用。 优先使用共享流量包A抵扣,超出100GB部分使用共享流量包B抵扣,超出600GB部分按需计费。 12月1日~12月9日 共享流量包A过期,只有资共享流量包B生效。 使用资源包B抵扣,超出500GB部分按需计费。 12月10日及之后 共享流量包A、B均已过期,此时为按需计费。
  • 资源包抵扣顺序 资源包抵扣原则 共享流量包购买后立即生效,并自动抵扣按需计费(按流量计费)的EIP带宽产生的流量资费,直到流量包用完或到期。购买多个共享流量包,优先抵扣将要到期的流量包。 带宽加油包到期将自动失效,恢复到原来的带宽规格。 带宽加油包是从购买时选择的有效期开始时间生效的,根据您设置的有效期时间,带宽加油包支持购买后立即生效。 如果您购买带宽加油包后,带宽还是不能满足要求,可以再次购买带宽加油包叠加使用。 目前带宽加油包支持叠加使用的区域:华北-北京四,华东-上海一,华南-广州,西南-贵阳一,中国-香港。 共享流量包抵扣顺序原则 当购买了多个共享流量包,会按照共享流量包过期时间顺序进行抵扣,优先抵扣即将到期的共享流量包。
  • 资源包说明 共享流量包 按需计费(按流量计费)的EIP,您可以通过购买共享流量包获取更多的优惠。共享流量包是一款带宽流量套餐产品,使用方便,价格实惠。购买共享流量包后立即生效,并自动抵扣按需计费(按流量计费)的EIP带宽产生的流量资费,直到流量包用完或到期。 共享流量包费用为一次性支付,即刻生效,不支持指定生效日期。 共享流量包一旦购买不支持修改和退订,到期后也不支持续订。 共享流量包支持包月和包年,到期后剩余的流量将无法再使用。 共享流量包只能针对按需计费(按流量计费)的带宽生效,且需要区分动态BGP和静态BGP类型。动态BGP共享流量包适用于动态BGP按需计费(按流量计费)的独享带宽,静态BGP共享流量包适用于静态BGP按需计费(按流量计费)的独享带宽。 共享流量包不支持对指定的某一个EIP带宽生效。 共享流量包不支持对共享带宽生效。 共享流量包不支持用于优选BGP类型的EIP。 带宽加油包 在有效期内的包年/包月的EIP,当某个时间段业务量激增(例如:双11),需要在这个时间段临时调整带宽规格,您可以通过购买带宽加油包,设置有效期时间来解决。加油包到期将自动失效,恢复到原来的带宽规格。 带宽加油包只能针对包年/包月带宽生效。 带宽加油包不支持用于优选BGP类型的EIP。 带宽加油包1天起售,购买后不能修改起始时间及带宽大小。 可用的资源包如表1所示,资源包在不同规格及时长下的具体价格,请参见产品价格详情。 表1 资源包说明 资源包 作用 使用限制 共享流量包 抵扣按需计费(按流量计费)的EIP带宽产生的流量资费 共享流量包费用为一次性支付,即刻生效,不支持指定生效日期。 共享流量包一旦购买不支持退订,到期后也不支持续订。 带宽加油包 临时调大带宽上限,适用于在有效期内的包年/包月独享带宽和共享带宽。 带宽加油包只能针对包年/包月带宽生效。 带宽加油包1天起售,购买后不能修改起始时间及带宽大小。
  • 计费模式概述 弹性公网IP提供包年/包月、按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。 按需计费:一种后付费模式,即先使用再付费。按需计费又分为按带宽计费和按流量计费。 不同计费方式推荐的适用场景如表1所示。 表1 弹性公网IP计费方式适用场景 计费模式 计费方式 推荐适用场景 包年/包月 按带宽计费 流量大或访问量稳定。 可预估资源使用周期。 按需计费 按带宽计费 流量大或访问量稳定。 资源使用有临时性和突发性。 按流量计费 流量低或访问量波动较大。 资源使用有临时性和突发性。 加入共享带宽 多业务流量高峰分布于不同时段,需节约公网成本。 如您需要详细了解EIP计费情况,请参见图1和表2。 图1 弹性公网IP计费概览 表2 计费模式 计费模式 包年/包月 按需计费(按带宽计费) 按需计费(按流量计费) 按需计费(加入共享带宽) 付费方式 预付费 按照订单的购买周期结算。 后付费 按照您指定的带宽大小及实际使用时长计费,不限流量。 后付费 按照您指定的线路类型及实际流量使用量计费,华为云仅收取出网流量费用,不收取入网流量费用。 后付费 此处带宽费为共享带宽的费用。 计费周期 按订单的购买周期计费,精确到秒。 秒级计费,按小时结算。 秒级计费,按小时结算。 秒级计费,按小时结算。 适用计费项 带宽费 带宽费 弹性公网IP保有费 流量费 弹性公网IP保有费 共享带宽费 弹性公网IP保有费 计费项说明 购买包年/包月EIP时,需要一次性支付选定周期内的带宽费,按照您指定的带宽大小计费,不限流量。 带宽费:按照您指定的带宽大小及实际使用时长计费,不限流量。 您购买EIP时可以指定带宽大小,后续支持修改。使用过程中,您实际的带宽不能高于指定带宽大小。 弹性公网IP保有费:按需计费的EIP,如果未绑定至实例,并且未释放的情况下,则会收取弹性公网IP保有费。 流量费:按照您指定的线路类型及实际流量使用量计费,华为云仅收取出网流量费用,不收取入网流量费用。 按流量计费的EIP,带宽作为限速使用,不收取费用。为了防止突然爆发的流量产生较高的费用,建议您购买EIP的时候指定带宽大小,设置出网带宽峰值。 弹性公网IP保有费:按需计费的EIP,如果未绑定至实例,并且未释放的情况下,则会收取弹性公网IP保有费。 按需计费的EIP选择加入共享带宽时,有以下两个计费项: 带宽费:此处带宽费为共享带宽的费用,共享带宽中可同时加入多个EIP,这些EIP使用期间的带宽和流量均不再单独计费,以共享带宽的费用为准。 弹性公网IP保有费:按需计费的EIP,如果未绑定至实例,并且未释放的情况下,则会收取弹性公网IP保有费。 变更计费模式 支持变更为按需计费(按带宽计费)模式。 具体请参见:包年/包月转按需计费 支持变更为包年/包月计费模式。 变更操作成功后,新的计费方式将立即生效。 具体请参见:按需计费转包年/包月 按需计费(按流量计费)EIP不支持直接转为包年/包月EIP。需要先将按需计费(按流量计费)转为按需计费(按带宽计费),再将按需计费(按带宽计费)转为包年/包月计费。 变更操作成功后,新的计费方式将立即生效。 具体请参见:按需计费转包年/包月 不支持变更计费模式。 变更规格 支持升高/降低带宽大小。 支持升高/降低带宽大小。 支持升高/降低带宽大小。 按流量计费的EIP,带宽仅作为限速使用,带宽大小不影响实际费用。 支持升高/降低带宽大小。 云监控服务 可以监控您的带宽和流量等网络指标,通过带宽使用率可以对比按带宽计费和按流量计费哪种方式更划算。按照以往的经验,为您提供如下建议供参考: 带宽小于5 Mbit/s时,建议您选择按按需计费(按带宽计费),或者根据使用时长选择包年/包月计费。 带宽大于5 Mbit/s,并且带宽使用率大于20%时,一般选择按带宽计费会更划算。 带宽等于5 Mbit/s时,不同的计费方式没有太大差异。 监控指标的查看方法请参见查看监控指标。 父主题: 计费模式
  • 手工创建测试工程 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”,单击“创建测试工程”。 参照表1设置基本信息。 表1 创建测试工程 参数 参数说明 工程名称 新建测试工程的名称。 说明: 工程名称只能以汉字、字母、数字、中划线(-)、下划线(_)、斜线(/)和点(.)组成,最长128个字节。 类型 高性能:高效利用计算资源,提供海量并发,性价比高。 可扩展:支持自定义脚本功能,具有较高的灵活性,满足客户定制化的需求。 说明: 测试工程创建后,工程类型不允许修改。 可扩展测试工程功能为白名单特性,需要联系后台管理人员申请开通,审批同意后方可使用。 描述 新建测试工程的描述信息。 配置完成后,单击“确定”。 测试工程创建成功后,即可为测试工程添加测试用例,详细操作请参见PerfTest测试用例管理。
  • 使用模板创建测试工程 登录性能测试服务控制台,在左侧导航栏中选择“总览”,进入总览页。 PerfTest定义了如下模板: 选择一网通办系统场景,一网通办系统测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择流媒体场景,流媒体测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择秒杀场景,秒杀测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择电商场景,电商测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 选择极速创建场景,极速创建测试工程即创建成功。测试工程创建成功后,测试用例已按模板创建成功。 可根据实际业务需求修改测试用例,详细操作请参见PerfTest测试用例管理。
  • 创建JMeter测试工程 登录性能测试服务控制台,在左侧导航栏中选择“JMeter测试工程”,单击“创建JMeter测试工程”。 参照表1设置基本信息。 表1 创建JMeter测试工程 参数 参数说明 工程名称 新建测试工程的名称。 说明: 工程名称只能以汉字、字母、数字、中划线(-)、下划线(_)、斜线(/)和点(.)组成,最长128个字节。 描述 新建测试工程的描述信息。 配置完成后,单击“确定”。 JMeter测试工程创建成功后,即可为测试工程添加测试计划,详细操作请参见管理JMeter测试计划。
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。 选择页面右侧的“压力配置”,参照表1 添加阶段设置阶段参数。 一个用例最多添加1000个阶段。 表1 添加阶段 参数 参数说明 阶段名称 自定义阶段名称,用于区分不同的阶段,比如首页测试。 压力模式 压力模式目前支持以下几种模式: 并发模式:用例按照固定或者梯度递增的并发用户数进行压测。 TPS模式:用例按照每秒指定的事务数进行压测。TPS模式中,一个虚拟用户执行一次测试用例为一个事务。实际压测时,能否达到指定的事务数取决于最大并发数和事务平均响应时延。 摸高模式:用例按照指定的爬坡时间由最小并发用户数线性递增到最大用户并发数后保持在峰值并发用户数进行压测。 浪涌模式:用例按照周期性变化的并发用户数进行压测,每个周期先按照最小并发用户数压测,再按照最大并发用户数压测。按最大并发用户数压测时长可自定义,周期数为设定的浪涌次数。 震荡模式:用例按照周期性波动的并发用户数进行压测,每个周期用户数在最小并发数和最大并发数之间波动。周期数为设定的震荡次数。 智能摸高:用例按照指定的单步执行时长由最小并发用户数按递增并发数逐步到最大用户并发数后保持在峰值并发用户数进行压测。 说明: 执行器按设定的梯度逐步增加并发数进行压测,压测时,后台会为每个并发梯度生成一个“阶段数据”,当某个阶段的数据相比前一个阶段有发生明显的性能拐点时,系统判定到达性能峰值。其中性能拐点通过以下场景定义:成功率小于阈值(默认100%)、RPS曲线下降、rt/tp90/tp99曲线出现较大的斜率变化。 执行策略 执行策略目前支持按时长和按次数。 按时长:按照设定的持续时间进行压测,不限定次数。 按次数:按照设定的发送总次数进行压测。 说明: 当前仅并发模式和TPS模式涉及该参数。 调压模式 在压测过程中调整压力,目前支持自动调压和手动调压。 自动调压:自动调压的并发上限为所有阶段中最高的并发用户数。 手动调压:手动调压的并发上限为最大并发数。手动调压后原有多阶段压力配置失效。 说明: 当前仅并发模式和TPS模式且执行策略为按时长时涉及该参数。 当“压力模式”为“并发模式”、“执行策略”为“按时长”,“调压模式”为“自动调压”时,需要配置以下参数: 并发数 并发数指在同一时刻内,对系统进行业务操作的用户数量。 在性能测试中为用户在定义测试任务阶段设置的虚拟用户数。 起始并发数 执行测试用例的起始虚拟用户数。 爬坡时间(秒) 从起始并发数加压到最大并发数所需要的时间。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“并发模式”、“执行策略”为“按时长”,“调压模式”为“手动调压”时,需要配置以下参数: 最大并发数 执行测试用例的最大虚拟用户数。 起始并发数 执行测试用例的起始虚拟用户数。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“并发模式”、“执行策略”为“按次数”,需要配置以下参数: 说明: 只能添加单阶段。 并发数 并发用户数指在同一时刻内,对系统进行业务操作的用户数量。 在性能测试服务中为用户在定义测试任务阶段设置的虚拟用户数。 发送总次数 该用例在一次任务的运行中,将按照运行次数计算,到达设定数值,该任务下此用例的性能测试将终止。 说明: 发送总次数不小于并发用户数。 当“压力模式”为“TPS模式”、“执行策略”为“按时长”且“调压模式”为“自动调压”,需要配置以下参数: 最大并发数 执行测试用例的最大虚拟用户数。 TPS值 设定每秒执行事务的数量。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“TPS模式”、“执行策略”为“按时长”且“调压模式”为“手动调压”,需要配置以下参数: 最大并发数 执行测试用例的最大虚拟用户数。 起始并发数 执行测试用例的起始虚拟用户数。 TPS值 设定每秒执行事务的数量。 压测时长(分钟) 本阶段压测执行的时间。 当“压力模式”为“TPS模式”、“执行策略”为“按次数”,需要配置以下参数: 说明: 只能添加单阶段。 最大并发数 执行测试用例的最大虚拟用户数。 TPS值 设定每秒执行事务的数量。 发送总次数(次) 该用例在一次任务的运行中,将按照运行次数计算,到达设定数值,该任务下此用例的性能测试将终止。 说明: 发送总次数不小于并发用户数。 当“压力模式”为“摸高模式”,需要配置以下参数: 起始并发数 执行测试用例的起始虚拟用户数。 最大并发数 执行测试用例的最大虚拟用户数。 爬坡时间(秒) 虚拟用户数从起始并发数线性递增到最大并发数的时长。 说明: 建议爬坡时间小于持续时间。爬坡时间与持续时间相同且并发量较大的情况下,采样到的最大并发可能会略小于设置的最大并发数。 压测时长(分钟) 压测执行的时间。 摸高期望指标 响应时间:最大值为60000ms。 成功率:最小值为0。 摸高模式下,期望被测系统的请求响应时间小于等于输入值,请求成功率大于等于输入值,摸高分析规则为其中一个指标首次出现连续6秒未达标的情况时(比如响应时间连续6s大于期望值),摸高分析完成后,取其中第一秒的数据为摸高结果。 说明: 当用例执行达到探底期望指标后,任务不会停止,会继续执行。 当“压力模式”为“浪涌模式”,需要配置以下参数: 压测时长(分钟) 压测执行的时间。 最大并发 执行测试用例的最大虚拟用户数,也是虚拟用户数变化过程峰值。 最小并发 执行测试用例的最小虚拟用户数,也是虚拟用户数变化过程的最小值。 浪涌次数 在持续时间内,虚拟用户数变化的周期数。 峰值持续时间(秒) 一个周期内,按最大并发虚拟用户数压测的持续时间。 当“压力模式”为“震荡模式”,需要配置以下参数: 压测时长(分钟) 压测执行的时间。 最大并发 执行测试用例的最大虚拟用户数,也是虚拟用户数波动过程的波峰值。 最小并发 执行测试用例的最小虚拟用户数,也是虚拟用户数波动过程的波谷值。 震荡次数 在持续时间内,虚拟用户数波动变化的周期数。 当“压力模式”为“智能摸高模式”,需要配置以下参数: 起始并发数 执行测试用例的起始虚拟用户数。 递增并发数 每步增加的虚拟用户数。 说明: 递增并发数非线性增长,执行时会指数增加。 单步执行时长(秒) 每步执行的时间,建议配置至少20秒以上。 压测时长(分钟) 压测执行的时间,建议配置30分钟以内。 说明: 当成功率小于阈值(默认100%)、RPS曲线下降、rt/tp90/tp99曲线出现较大的斜率变化,任务会停止压测。 配置完成后,单击“保存”
  • 请求签名 func(map[string]string) interface{} 入参:性能测试服务内置参数以及自定义参数。 出参:interface需实现IResultV1接口,如有必要,请使用性能测试服务提供的IResultV1接口实现。 表1 性能测试服务内置参数 名称 含义 补充说明 __name 请求名称 - __goroutine_id 协程id - __executor_index 执行机索引 序号从0开始。 __executor_count 执行机总数 -
  • IResultV1接口实现 package main import ( "fmt" "time" ) const ( InnerVarName = "__name" InnerVarGoroutineId = "__goroutine_id" InnerVarExecutorIndex = "__executor_index" InnerVarExecutorCount = "__executor_count" ) type IResultV1 interface { GetName() string GetUrl() string GetMethod() string GetRequestHeader() map[string]string GetRequestBody() string GetSentBytes() int GetResponseCode() int GetResponseHeader() map[string]string GetResponseBody() string GetReceivedBytes() int GetFailureMessage() string IsSuccess() bool GetBeginTime() int64 GetEndTime() int64 GetSubResults() []interface{} } //acquireResult generates root result. //just call one time on the main func and generate sub result using parent.addSub() func acquireResult(name string) *Result { result := &Result{} result.Name = name result.RequestHeader = map[string]string{} result.ResponseHeader = map[string]string{} result.ResponseCode = 200 result.Success = true result.BeginTime = time.Now().UnixMilli() result.EndTime = time.Now().UnixMilli() return result } type Result struct { Name string Url string Method string RequestHeader map[string]string RequestBody string SentBytes int ResponseCode int ResponseHeader map[string]string ResponseBody string ReceivedBytes int FailureMessage string Success bool BeginTime int64 EndTime int64 SubResults []interface{} SubIndex int } func (r *Result) GetName() string { return r.Name } func (r *Result) GetUrl() string { return r.Url } func (r *Result) GetMethod() string { return r.Method } func (r *Result) GetRequestHeader() map[string]string { return r.RequestHeader } func (r *Result) GetRequestBody() string { return r.RequestBody } func (r *Result) GetSentBytes() int { return r.SentBytes } func (r *Result) GetResponseCode() int { return r.ResponseCode } func (r *Result) GetResponseHeader() map[string]string { return r.ResponseHeader } func (r *Result) GetResponseBody() string { return r.ResponseBody } func (r *Result) GetReceivedBytes() int { return r.ReceivedBytes } func (r *Result) GetFailureMessage() string { return r.FailureMessage } func (r *Result) IsSuccess() bool { return r.Success } func (r *Result) GetBeginTime() int64 { return r.BeginTime } func (r *Result) GetEndTime() int64 { return r.EndTime } func (r *Result) GetSubResults() []interface{} { return r.SubResults } //begin records begin time, do not forget call this function to update func (r *Result) begin() { r.BeginTime = time.Now().UnixMilli() } //end records end time, do not forget call this function to update func (r *Result) end() { r.EndTime = time.Now().UnixMilli() } //addSub adds sub result to parent, call this function adding sub result always. //if name is not empty, renaming will be disabled func (r *Result) addSub(name string) *Result { if name == "" { name = fmt.Sprintf("%s-%d", r.Name, r.SubIndex) r.SubIndex++ } else { name = fmt.Sprintf("%s-%s", r.Name, name) } sub := acquireResult(name) r.SubResults = append(r.SubResults, sub) return sub } 表2 IResultV1接口结构说明表 名称 含义 补充说明 Name 请求名称 根result需使用内置参数__name设置。 Url 请求地址 - Method 方法 用于HTTP的POST,GET等。 RequestHeader 请求头 用于HTTP。 RequestBody 请求数据 建议不要记录请求较大的数据,例如上传文件,仅记录摘要即可。 SentBytes 发送字节数 - ResponseCode 响应码 记录响应状态,可以用于HTTP状态码或者自定义状态码,用于报告统计响应状态数量用于分析。 响应码范围:[100,599] ResponseHeader 响应头 用于HTTP。 ResponseBody 响应数据 建议不要记录响应较大的数据,例如下载文件,仅记录摘要即可。 ReceivedBytes 接收字节数 - FailureMessage 失败信息 - Success 是否成功 - BeginTime 请求开始时间 单位:毫秒 EndTime 请求结束时间 单位:毫秒 SubResults 子请求 当自定义请求需要多个子请求共同完成,需要使用该字段记录各个子请求执行情况。 SubIndex 子请求索引 当使用父Result的addSub方法生成子Result时,如果不为子Result自定义名称,将使用该字段自增产生索引用于生成子Result名称。
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。 选择页面右侧的“用例详情”进入用例详情页面,输入测试用例描述、前置条件、测试步骤,依照表1设置用例基本信息。 表1 用例基本信息 参数 参数说明 状态 描述测试用例当前处于哪种状态,如新建、设计中、测试中、完成。 用例ID 用例ID信息。 用例等级 Level 0:最基本的功能验证,用例不宜过多,各模块尽量保证在10-20个,占比5%左右。 1级:基本功能验证,可用于继承特性的基本功能验证、迭代验收前的基本功能验证等,占比20%左右。 2级:重要特性验证,可用于测试版本(非回归版本)中手工测试,占比60%左右。 3级:一般功能/非重要功能验证,包括对基本/重要功能的异常测试,占比10%~15%左右。 4级:非常特殊输入、场景、阈值条件的用例,该级别用例不宜过多,占比0%~5%左右。 标签 用例自定义标签,用于标识用例。 输入标签:单击标签输入框,输入标签后,用空格或回车键生成标签,每个用例限制10个标签。 删除标签:单击标签输入框,单击已生成标签后的删除该标签。 创建时间 测试用例的创建时间,用例保存后自动生成。 修改时间 测试用例的最新修改时间,用例保存后自动生成。 用例详情信息设置完成后,单击“保存”。
  • 测试用例简介 PerfTest测试工程主要由测试用例、测试任务和性能报告组成。事务库和智能分析属于增强能力。 测试用例、测试任务、性能报告分别对应了性能测试活动的三个主要环节。 图1 性能测试活动流程 其中测试用例是基于某个性能压测场景建立的测试模型。测试任务是基于已定义的(若干个)测试模型发起一次性能测试的活动。性能报告是测试任务执行的结果,呈现的是被测系统在高并发场景下的性能指标。 图2 测试用例、测试任务和性能报告之间的关系 父主题: 测试用例说明
  • 插入变量 添加请求信息时,在输入框内输入“$”,支持插入变量。 “变量类型”为“自定义变量”时,需要设置如下参数: 变量范围:选择变量范围。 变量名称:自定义变量名称。自定义变量名称为添加变量时为变量取的名称。 “变量类型”为“系统变量”时,需要选择函数名称: 身份证号:随机生成一个身份证号。 手机号:随机生成一个手机号。 区间随机数:根据用户输入区间,随机生成区间内的任一整数。 随机字符串:根据用户输入的位数(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解码,返回解码后的数据字符串。 父主题: 设置全局变量(高性能测试工程)
共100000条