通用服务器桩-Receiver使用说明文档
作者:网络转载 发布时间:[ 2012/11/7 10:18:32 ] 推荐标签:
通用服务器桩-Receiver使用说明文档
1 背景
“驱动+桩”是一种比较成熟的服务器端模块测试模式,易于实施自动化。
Receiver应用于桩构建的场景,提高构建服务器端测试桩的效率,在大多数应用场景下用户可以通过配置xml文件实习桩功能,支持功能和性能测试使用
Receiver只支持linux环境使用
2 名词解释
A模式: 普通xml解析模式
B模式: 逻辑xml解析模式
C模式: so加载模式
3 功能
※能够模拟提供二进制socket接口的服务器程序
※能够支持功能与性能的要求
※提供三种使用模式:
(1) 普通xml解析模式(模拟单个接口,指定接口格式及回报数据)
(2) 逻辑xml解析模式(模拟多个接口,除指定接口格式及回报数据外,定制部分逻辑)
(3) so加载模式(特殊场景使用,用户可以自己实现包处理函数)
※ 提供各类辅助函数, 帮助更快速的开发桩程序
4 使用说明
4.1 普通xml模式
假设一个服务器模块提供的某个socket接口请求格式为header+req1,回包格式为header+resp1,struct描述如下:
struct header{
int cmd;
char provider[200];
int len;
};
struct req1{
int id;
};
Struct item{
Int a;
Int b;
};
struct resp1{
int result;
char name[50];
int count;
struct item items[];
};
那么我们需要先构造三个xml描述
※header1.xml
※req1.xml
※ resp1.xml
注:endian用来描述字节序,0为主机序(默认)
Repeat用于指定该数据段重复数字,用于数组定义,也可以用在struct的描述上
Type为该字段类型,工具内置类型见附录
#flowlen()为内置函数,指定此处自动计算,根据后面所有结构体的长度计算,其他关键字见附录
$TEMPRESULT表示从环境变量TEMPRESULT中读取数据
@count 表示该字段值由值反填,也是5
回包值可以指定固定值、从环境变量中读取或者利用random内置函数随机生成
运行receiver:./receiver –p 3306 –r ./header.xml –r req1.xml –s header.xml –s resp1.xml -l 1 -u 0 -n -1 即可模拟这个服务器的接口
那么当receiver收到一个header+req1的请求,它会回一个header+resp1的应答(result为对应系统变量实际值,name 为hello world),-l 1表示长连接, -u 0 表示tcp请求, -n -1 表示receiver不会退出,一直处理请求
4.2 逻辑xml模式
上个例子给出了模拟一个服务器程序单一接口的使用方法,逻辑xml主要用于模拟一个程序多个接口的场景。
假设说某模块提供的接口格式如下:
header1+header2+reqX
回包格式为:
header1+header2+respX
(X为未知数,具体请求与回应的结构体由header2中的cmd域来定义,例如如果cmd取值为5,则请求为header1+header2+req5,回应为header1+header2+resp5)
我们想启动一个桩实例来模拟这些接口,那么可以使用逻辑xml模式,逻辑xmll的使用方法如下:
首先构造逻辑xml:
[gaowei@db-testing-cs33.db01.baidu.com receiver]$ cat xml/config.xml
运行receiver:./receiver –p 3306 –b config.xml -l 1 -u 0 -n -1 –t 5即可模拟这个服务器的多个接口
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11