云服务器内容精选

  • 预置报告 华为云为您提供了默认的分析报告,便于您快速分析成本。您无法删除默认报告,只能复制和新增。 表1 成本和使用情况报告 报告名称 说明 按产品类型汇总的月度成本 了解过去6个月原始成本较高的产品类型。 按关联账号汇总的月度成本 了解过去6个月原始成本较高的关联账号。 每日成本 了解过去3个月+未来一个月的每日原始成本趋势。 月度摊销成本 了解过去6个月摊销成本的月度趋势。 E CS 的月度按需成本和使用量 了解过去6个月云主机每月按需原始成本和按需使用量情况。
  • 操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”,单击待操作工程后的。 在“性能报告”页签下,选择需要查看报告的任务。 单击“任务名称”,或单击操作栏的,在左侧“报告列表”中选择需要查看的离线报告,详细参数说明请参考表1。 您可以选择下载离线报告(PDF格式)到本地进行查看,同时支持导出原始数据(CSV格式),可进行二次加工。 性能测试服务只为用户保留1年内的离线报告数据。 在“总览”页签下,您可以查看失败数/总请求数、平均时延、RPS、最大并发、成功率、SLA告警、带宽、动态趋势、响应码等。 在“明细”页签下,您可以查看该测试任务下测试用例的日志、通用测试指标、请求详情及SLA规则是否触发。 单击“查看日志”,在“查看日志”弹窗中可以查看请求日志、事件日志及Pod信息。其中请求日志根据请求名称、返回码、结果这三个条件,各展示10条日志。 用例日志采集策略配置为请求模式的请求日志支持对返回码/结果/请求名称进行过滤展示。日志采集策略中在测试用例的“高级配置”中设置,详见高级配置。 报告明细显示的采样模式有等距抽样值和等距平均值。 等距抽样值:根据用例执行时长,对大于45min的用例的趋势图以固定的时间间隔进行抽样点展示。 等距平均值:根据用例执行时长,对大于45min的用例的趋势图以固定的时间间隔进行平均值展示。 单击“数据显示”下拉框,输入关键字搜索,可以显示您需要的用例或请求数据。也可以在“数据显示”下拉框的用例目录中直接单击您需要显示的用例或请求数据。 在“明细”页签下,您也可以单击“列表”进入报告指标汇总页面。 单击“自定义列”,可以在“表格设置”弹框中选择需要显示的列表项;在弹框右侧拖动已选列,可以改变列表项的顺序。 图1 表格设置 单击操作栏中的查看日志。 单击操作栏中的编辑测试用例。 如果测试任务已关联智能分析对象中的应用监控( APM ),测试报告则体现“调用分析”页签。在“调用分析”页签,通过设置查询条件,可以查看符合查询条件的APM调用详细记录。 如果测试任务已关联智能分析对象中的主机监控( AOM ),测试报告则体现“监控指标”页签。在“监控指标”页签可以查看CPU使用率、内存使用率、磁盘读取速度、磁盘写入速度信息。
  • 响应示例 状态码: 200 success { "code" : "SVCSTG.CPTS.0000000", "log_list" : [ { "name" : "temp_name_2022-07-20T17:01:57+08:00", "run_id" : 48105, "run_type" : 1, "start_time" : "2022-07-20T17:01:57+08:00", "end_time" : "2022-07-20T17:11:52+08:00", "continue_time" : 595, "temp_names" : [ { "name" : "temp_name" } ], "parallel" : false } ], "message" : "success" }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 code String 响应码 message String 响应消息 log_list Array of HistoryRunInfo objects 报告列表 表3 HistoryRunInfo 参数 参数类型 描述 name String 名称 run_id Double 报告ID run_type Double 任务类型(0:旧版本任务;1:新版本任务) start_time String 开始时间 end_time String 结束时间 continue_time Double 继续时间 temp_names Array of TempName objects 用例或者事务名称 parallel Boolean 任务间用例是否并行执行 表4 TempName 参数 参数类型 描述 name String 名称 状态码: 501 表5 响应Body参数 参数 参数类型 描述 - String response message
  • 响应示例 状态码: 200 任务用例列表响应对象 { "code" : "SVCSTG.CPTS.0000000", "message" : "success", "extend" : null, "result" : { "case_aw_info_list" : [ { "aw" : [ { "datumType" : 0, "id" : "7053151331402211329", "name" : "request-example" } ], "awList" : [ { "awList" : null, "caseAwId" : "7053151331402211329", "datumType" : 0, "name" : "request-example", "transactionId" : null } ], "caseAwId" : "7053151331402211328", "caseUri" : null, "case_uri_i" : "83820", "datumType" : 1, "id" : "7053151331402211328", "name" : "test-case", "taskExecId" : "5206012", "taskId" : "az-4-69824", "testcaseId" : "5206012", "transactionList" : [ ] } ], "err_message" : null } }
  • 性能测试服务报告界面的RPS和TPS有什么区别? RPS是Requests Per Second的简称,用例的RPS=用例总请求数/用例的运行时长;TPS是Transactions Per Second的简称,用例的TPS=用例的事务数/用例的运行时长,其中事务定义为:性能测试服务压测过程中,会循环执行用例中的所有测试步骤,每完成一次循环,算做一次事务(transaction)。 父主题: 压测报告管理
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 主机漏洞总数 最小值:0 最大值:1000 items Array of HostVulnItem objects 主机漏洞信息列表 数组长度:0 - 1000 表5 HostVulnItem 参数 参数类型 描述 type String 漏洞类型 最小长度:0 最大长度:100 port String 扫描端口号 最小长度:0 最大长度:100 title String 漏洞标题 最小长度:0 最大长度:1000 sa_id String 漏洞公告ID 最小长度:0 最大长度:100 vuln_id String 漏洞ID 最小长度:1 最大长度:100 severity String 漏洞风险等级: high - 高风险 medium - 中风险 low - 低风险 hint - 提示 枚举值: high medium low hint topic String 漏洞摘要 最小长度:0 最大长度:1024 description String 漏洞描述 最小长度:0 最大长度:10240 solution String 漏洞提示建议 最小长度:0 最大长度:10240 fix_advisory String 漏洞修复建议 最小长度:0 最大长度:10240 fix_cmd String 漏洞修复指令 最小长度:0 最大长度:10240 cve_list Array of cve_list objects CVE漏洞列表 数组长度:0 - 100 ref_link_list Array of strings 参考信息链接列表 最小长度:0 最大长度:10000 数组长度:0 - 1000 component_list Array of component_list objects 内容列表 数组长度:0 - 1000 vul_detect_result String 检查结果 最小长度:0 最大长度:10240 cvss_score String CVSS分数信息 最小长度:0 最大长度:5 cvss_version String CVSS版本信息 最小长度:0 最大长度:5 cvss_vector String CVSS向量信息 最小长度:0 最大长度:100 is_ignore Boolean 是否误报 表6 cve_list 参数 参数类型 描述 id String CVE漏洞ID 最小长度:0 最大长度:100 link String CVE漏洞链接 最小长度:0 最大长度:100 表7 component_list 参数 参数类型 描述 componentName String 内容名称 最小长度:0 最大长度:1000 componentInstallVersion String 安装版本 最小长度:0 最大长度:1000 componentFixedVersion String 已经修复版本 最小长度:0 最大长度:1000 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 418 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256
  • 响应示例 状态码: 200 OK { "total" : 1, "items" : [ { "type" : "protocolvuln", "port" : "general-tcp", "title" : "Apache Log4j2 Remote Code Execution Vulnerability", "sa_id" : "Apache Log4j2 Remote Code Execution Vulnerability", "vuln_id" : "1.3.6.1.4.1.25623.1.0.301012-general-tcp", "severity" : "high", "topic" : "Apache Log4j2 Remote Code Execution Vulnerability", "description" : "Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3) JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. \\nAn attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled.\\nhttps://www.huaweicloud.com/notice/2021/20211210001621800.html\\n", "fix_advisory" : "Update log4j to 2.12.2, 2.16.0 or later. Ask application vendor for a fix.\\nPlease refer to https://www.huaweicloud.com/notice/2021/20211210001621800.html", "cve_list" : [ { "id" : "CVE-2021-44228", "link" : "" } ], "ref_link_list" : [ "" ], "vul_detect_result" : "/var/lib/docker/overlay2/54e1e225d711d77afc0e8cf6fa3dda0274c56659b21d214715ee53f18565789f/diff/root/sdkrend/log4j-core-2.8.2.jar\\n", "cvss_score" : "9.3", "cvss_version" : "", "cvss_vector" : "AV:N/AC:M/Au:N/C:C/I:C/A:C", "is_ignore" : false } ] }
  • URI GET /v3/{project_id}/hostscan/hosts/{host_id}/sys-vulns 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户的project_id 最小长度:32 最大长度:32 host_id 是 String 主机ID 最小长度:1 最大长度:64 表2 Query参数 参数 是否必选 参数类型 描述 scan_id 是 String 扫描ID 最小长度:1 最大长度:64 offset 否 Integer 分页查询,偏移量,表示从此偏移量开始查询 最小值:0 最大值:10000 缺省值:0 limit 否 Integer 分页查询,每页显示的条目数量 最小值:1 最大值:100 缺省值:5
  • 请求示例 { "models": [ { "adminOrganization": "830", "reportName": "7570.xlsx", "sceneTaskId": 3312207, "templateId": 117045418713, "templateName": "报告模板test12312" } ] }
  • 响应参数 参数 类型 描述 stateCode String 响应状态码: 0-成功 其他-失败 errorMessage String 响应描述 result Object 响应结果内容data、分页数据 Result: 参数 类型 描述 reportVersion String 报告版本号 reportName String 报告名称 adminOrganizationName String 行政组织名称 orgPath String 组织路径 lastUpdateDate Date 最近更新时间 templateId Long doc模板Id deleteFlag Integer 删除标识 lastUpdateTimestamp Long 最近更新时间戳 entityName String 实体名称 reportTemplateName String 报告模板名称 reportCode String 报告编码 creationTimestamp Long 创建时间戳 isAuto Integer 自动生成 1为是 0为否 id Long 主键ID taskStatus Integer 任务审批状态 reportDoneTimestamp 报告完成时间 报告完成时间 lastUpdatedBy Long 最近更新人 appName String 应用名称 sceneName String 许可场景 adminOrganizationCode String 行政组织编码 isNew Integer 是否最新 creationDate Date 创建时间 version Double 版本 sceneTaskId Long 场景任务ID templateName String 报告模板名称 createdBy Long 创建人 affectedRows Integer 影响行数 tenantId Long 租户Id adminOrganization String 行政组织编码 lastUpdateName String 最近更新人名称 taskName String 父任务名称 createName String 创建人名称 status Integer 报告状态
  • 响应示例 { "stateCode": "0", "result": [ { "reportVersion": "1.1", "reportName": "7570.xlsx", "adminOrganizationName": "杨凌作业系统测试", "orgPath": "-1.830", "lastUpdateDate": "2024-01-24T03:58:37.177+00:00", "templateId": 117045418713, "deleteFlag": 0, "lastUpdateTimestamp": 1706068717146, "entityName": "TaskReport", "reportTemplateName": "报告模板test12312", "reportCode": "REPORT-202401247146", "creationTimestamp": 1706068717146, "isAuto": null, "id": 127711, "taskStatus": null, "reportDoneTimestamp": 1706068717146, "lastUpdatedBy": 930464, "appName": "isdp-qc-report-server", "sceneName": null, "adminOrganizationCode": "830", "isNew": 0, "creationDate": "2024-01-24T03:58:37.177+00:00", "version": 1.1, "sceneTaskId": 3312207, "templateName": "报告模板test12312", "createdBy": 930464, "affectedRows": 1, "tenantId": 886, "adminOrganization": "830", "lastUpdateName": "twx接口文档test", "taskName": "质检任务test1231", "createName": "twx接口文档test", "status": 1 } ], "errorMessage": null }
  • 请求参数 参数 类型 是否必填 描述 models List 是 模板模型 models参数 参数 类型 是否必填 描述 adminOrganization String 是 行政组织编码 reportName String 是 报告名称 taskId Long 否 检查单Id sceneTaskId Long 否 任务ID status Integer 否 任务审批状态 templateId Long 是 doc模板Id templateName String 否 报告模板名称 ticketId Long 否 工作票ID isGenerateDoc Integer 否 是否自动生成 1-是,0为否
  • 报告总览 测试报告说明如表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的值。
  • 请求示例 { "filter": {}, "page": { "start": 0, "count": 1 }, "taskReport": { "reportName": "", "reportCode": "", "locationId": "", "locationName": "", "countryId": "", "provinceId": "", "cityId": "", "adminOrganizationCodeList": [], "administrativeRegion": "", "sceneTaskId": "3240932" } }