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
常见问题
相关协议
服务等级协议
使用限制
隐私政策
数据处理和安全协议

TCP/UDP 协议压测

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

Socket 基本概念

Socket 是一种操作系统提供的进程之间的通信机制。操作系统会提供一组封装了 TCP/IP 协议的 Socket 接口,进程便可通过这些接口来使用 Socket、收发网络数据。
在使用 Socket 接口时,一个进程的 IP 地址加上端口构成一个 Socket 地址;客户端与服务器双方进程的 Socket 地址再加上传输协议(TCP 或 UDP),就构成了 Socket 五元组,标识一次网络通信。

脚本编写

PTS API 的 socket 模块提供了支持 Socket 的相关接口,详见 pts/socket
使用这些接口,您可以建立 Socket 实例,然后通过该实例发送或接收 TCP/UDP 数据。
基本用法:
1. 创建 Socket 实例
通过 new socket.Conn 方法,可以创建一个 Socket 实例。该方法的参数为协议名(tcpudp)、服务地址、服务端口。
2. 使用 Socket 实例
发送数据:通过实例的 send 方法发送数据。参数为二进制数据,返回值为发送的字节数。
接收数据:通过实例的recv 方法接收数据。参数为接收的字节数,返回值为接收的二进制数据。
关闭连接:通过实例的 close 方法关闭连接。
使用 TCP 协议的脚本示例:
// tcp connect to send package
import socket from "pts/socket";
import util from 'pts/util';
import {sleep} from 'pts';

export default function () {
const tcp_socket = new socket.Conn('tcp', '127.0.0.1', 80);
const send_data = `GET /get HTTP/1.1
Host: 127.0.0.1
User-Agent: pts-engine
\\r\\n`;
tcp_socket.send(util.toArrayBuffer(send_data));
const bytes_read = tcp_socket.recv(512);
tcp_socket.close();
console.log(bytes_read);
sleep(1);
}
使用 UDP 协议的脚本示例:
// udp connect to send package
import socket from "pts/socket";
import util from 'pts/util';

export default function main() {
const udp_socket = new socket.Conn('udp', '127.0.0.1', 20001);
const send_data = `test data`;
udp_socket.send(util.toArrayBuffer(send_data));
const bytes_read = udp_socket.recv(1024);
udp_socket.close();
console.log(bytes_read);
}

脚本验证

若要验证脚本执行结果,可在正式压测前,先使用 PTS 调试功能,快速验证结果是否符合预期。更多详情可参见 调试场景

文件依赖

在压测场景里,您可上传以下几种类型的文件,提供压测执行时的状态数据:
参数文件:以 csv 文件的形式,动态提供测试数据。也即,场景被每个并发用户(VU)执行时,会获取参数文件里的每行数据,作为测试数据的值,供脚本里的变量引用。具体使用方法参见:使用参数文件
请求文件:构建您的请求所需的文件,如需要上传的文件。具体使用方法参见:使用请求文件
协议文件:请求序列化所需要用到的文件。具体使用方法参见:使用协议文件

帮助和支持

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

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

文档反馈