tencent cloud

云压测

产品概述
购买指南
计费概述
按量计费(后付费)
购买方式
欠费说明
退费说明
快速入门
操作指南
简单模式压测
脚本模式压测
JMeter 模式压测
管理项目
管理场景
流量录制
环境管理
定时压测
压测报告
访问控制
告警管理
标签管理
错误代码手册
实践教程
使用 Prometheus 观测性能压测指标
使用云压测回放 GoReplay 录制的请求
API 文档
History
Introduction
API Category
Making API Requests
PTS-related APIs
Data Types
Error Codes
JavaScript API 列表
JavaScript API 列表概述
pts/global
pts/http
pts
pts/dataset
pts/grpc
pts/jsonpath
pts/protobuf
pts/redis
pts/sql
pts/url
pts/util
pts/ws
pts/socketio
pts/socket
常见问题
相关协议
服务等级协议
使用限制
隐私政策
数据处理和安全协议

设置检查点

PDF
聚焦模式
字号
最后更新时间: 2025-03-10 16:46:58

概述

您可通过自定义检查点,检查请求的响应结果是否符合业务预期。检查结果会被汇总到检查点指标里,供您在压测报告中查看明细。
此外,您还可以开启检查点与请求的关联日志,以在请求采样侧查看与该请求相关的检查点的信息。

用法

1. 检查点定义

PTS JavaScript API 提供了check方法来创建检查点。
check方法的入参为:
name:检查点的名字。
callback:用于检查的函数,该函数应返回布尔类型。
response(可选):传入被检查的请求的响应,用于开启记录检查点日志。
check方法的返回值为布尔类型,代表本次检查的成功与否。
基本示例如下:
import http from 'pts/http';
import { check } from 'pts';
export default function () {
const resp = http.get('http://mockhttpbin.pts.svc.cluster.local/get');
check('statusCode is 200', () => resp.statusCode === 200); // 设置检查点,以统计检查点指标
check('statusCode is 200', () => resp.statusCode === 200, resp); // 设置检查点,以统计检查点指标、并记录检查点日志
};
常用检查逻辑示例如下:
import { check } from 'pts';

export default function () {
check("is empty", () => "" === "") // true
//@ts-ignore
check("is not empty", () => "str" !== "") // true
check("equals", () => 1.00 == 1) // true
check("not equal", () => 1.00 === 1) // true
check("less than", () => 1 < 2) // true
check("less or equal", () => 1 <= 1) // true
check("greater than", () => 2 > 1) // true
check("greater or equal", () => 2 >= 2) // true
check("has key", () => ({key:"value"}).hasOwnProperty("key")) // true
check("string has value", () => "str".includes("s")) // true
check("array has value", () => ["a", "b", "c"].includes("a")) // true
};
说明
更详细的 API 文档请参见 pts.check

2. 检查结果查看

指标明细

登录 腾讯云可观测平台,在左侧导航栏选择云压测 > 测试场景,进入压测报告页面,单击检查点明细,可以观察到从所有检查结果汇总而来的多维度指标:


关联请求

调用check方法时,若您传入了可选的响应参数,则检查结果除了能体现在上述检查点指标里,还会被记录在请求采样日志里,可以进入请求采样页面查看:

单击选择需要查看的采样项:

再单击一条采样请求,进入详情页面,即可看到与该采样请求相关联的检查点内容:



检查点及对应请求的日志打印

检查点在逻辑上和请求是分离的,请求可以对应多个检查点,而检查点也可以检查非请求的内容;同时,请求正常响应(状态码为 200),检查点也可能不通过,这取决于用户配置的检查条件。
import http from 'pts/http';
import { check, sleep } from 'pts';
export default function () {
const resp = http.get('http://mockhttpbin.pts.svc.cluster.local/get', {
headers: {
Connection: 'keep-alive',
'User-Agent': 'pts-engine',
},
query: {
name1: 'value1',
name2: 'value2',
},
});
// 请求可以对应多个检查点
check('status is 200', () => resp.statusCode === 200, resp);
check('body.args.name1 equals value1', () => resp.json().args.name1 === 'value1', resp);
// 请求响应 200,检查点也可能不通过(取决于用户配置的检查条件)
check('body.args.name1 equals value2', () => resp.json().args.name1 === 'value2', resp);
// 检查点可以检查非请求的内容
let v = 1;
check("v==1", () => v==1);
check("v==2", () => v==2);
}
不过,在实际使用的过程中,检查点和请求往往组合使用,用于检查请求响应是否符合预期;因此,获取检查点和请求的对应关系非常重要。
在前文“关联请求”中,通过设置 check 中的响应参数,可以将检查点结果记录在请求采样的日志里面,满足了部分情况下对两者的关联需求。但在某些情况下,可能对细节有更多定制化的要求,此时可以在检查点的检查条件内将需要的内容打印到日志中,来查看更多的内容细节:
import http from 'pts/http';
import { check } from 'pts';
export default function () {
const resp = http.get('http://mockhttpbin.pts.svc.cluster.local/get', {
query: {
name1: 'value1',
},
});
// 在检查点的检查条件内打印用户日志
check('body.args.name1 equals value2', () => {
if (resp.json().args.name1 === 'value2') {
return true
};
console.log(resp.body);
console.log(`check not pass, name1 need value2 but ${resp.json().args.name1}`);
return false;
});
}

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈