sender通用收发包测试工具

简介:

sender工具是通用的发包工具,支持xml文件,在使用sender工具之前需要先把头文件中的结构体转化成xml文件,然后进一步使用sender工具实现发包功能。下面将详细描述此工具的使用:

 

1获取结构体对应的xml文件

Ø xml转换器功能:把文件中的一个struct结构转换成sender工具支持的xml格式保存在xml文件里,且生成的文件名为:结构体名.xml

Ø xml转换器工具使用方法:

./gen_xml.pl 结构体名称 网络序标志 header1.h header2.h ……

Ø 工具使用说明:

·结构体名称需要与头文件中结构体名一致

·网络序标志此结构体是否以网络序形式发送:1,网络序:0,主机序

·后面可以跟多个头文件,支持结构体嵌套替换、typedef替换

·工具将结构体转换为xml格式文件保存在xmldata/结构体名.xml文件中,工具将xml结构中的变量值使用环境变量进行了填充,被填充的环境变量统一保存在xmldata/结构体名.datal文件中。环境变量的格式为:结构体名_结构体字段名

·在实际使用的时候,可以修改xml文件中某个结构体变量对应的环境变量名,并可以通过在shell脚本中重新赋值的方式来设定此环境变量的值

Ø 示例:

·头文件如下:

test.h

struct my_test

{

int cmd;

int ip;

int port;

int reserved;

}

Struct response

{

Int result;

}

·使用xml转换器进行转换:

./gen_xml.pl my_test 1 test.h

·生成的xml文件以及data文件如下:

my_test.xml

==================================================================

<packet type="struct" repeat="1" value="my_test" endian="1">

<cmd type="int" value="$my_test_cmd" repeat="1"/>

<ip type="int" value="$my_test_ip" repeat="1"/>

<port type="int" value="$my_test_port" repeat="1"/>

<reserved type="int" value="$my_test_reserved" repeat="1"/>

</packet>

my_test.data

==================================================================

export my_test_cmd=

export my_test_ip=

export my_test_port=

export my_test_reserved=

==================================================================

·使用xml生成器转换:

./gen_xml.pl response 1 test.h

·生成的xml文件以及data文件如下:

response.xml

<packet type="struct" repeat="1" value="response" endian="1">

<result type="int" value="$response_result" repeat="1"/>

</packet> ==============================================================

response.data

==============================================================

export response_result=

==============================================================

·可以对上面产生的data文件中的环境变量赋值,如下:

export my_test_cmd=2

export my_test_ip=1234

export my_test_port=345

export my_test_reserved=0

 

2使用sender收发包

Ø 通过写shell脚本调用sender工具实现发包功能

Ø 具体使用方法:(假定发送my_test结构体的内容后,得到的回复是response结构体的内容)使用上面示例的结构体my_test.h,以及使用转换器生成的xml文件以及data文件(下面为脚本文件my_test.sh):

source my_test.data

SRTSERVER=10.81.15.41

PORT=20120

sender -i $SRTSERVER -p $PORT –s my_test.xml –c response.xml

Ø 在实际的使用环境中可以修改xml文件中结构体变量对应的环境变量的名字,然后在shell脚本中对此环境变量重新复制,并使用export使此环境变量生效

(baiduqa,邮箱:qablog@baidu.com)

 











本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/744455,如需转载请自行联系原作者

相关文章
|
6月前
|
测试技术 数据安全/隐私保护
通过抓包能否做好接口测试
通过抓包能否做好接口测试
58 0
|
iOS开发
完整版在xcode打测试专用ipa包流程​
完整版在xcode打测试专用ipa包流程​
|
1月前
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
51 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
3月前
|
测试技术 开发工具 Python
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
159 0
|
4月前
|
测试技术 数据安全/隐私保护 索引
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】(2)
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】
41 0
|
4月前
|
Java 关系型数据库 MySQL
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】(1)
基于SpringBoot+Vue大学生体质测试管理系统【源码+论文+演示视频+包运行成功】
74 0
|
6月前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
290 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
5月前
|
存储 网络安全 Android开发
接口测试:抓包工具证书配置
Charles 抓包工具配置指南:包括Charles的基础设置,证书安装(Mac和Windows),SSL代理设置,移动端(同一WIFI环境,启用透明HTTP代理)和模拟器的代理配置,以及iOS系统的代理与证书安装步骤。注意Android 6+及iPhone 10+的特殊信任设置。配置完成后,通过Charles进行网络请求监控。
|
6月前
|
安全 测试技术 Go
Golang深入浅出之-Go语言单元测试与基准测试:testing包详解
【4月更文挑战第27天】Go语言的`testing`包是单元测试和基准测试的核心,简化了测试流程并鼓励编写高质量测试代码。本文介绍了测试文件命名规范、常用断言方法,以及如何进行基准测试。同时,讨论了测试中常见的问题,如状态干扰、并发同步、依赖外部服务和测试覆盖率低,并提出了相应的避免策略,包括使用`t.Cleanup`、`t.Parallel()`、模拟对象和检查覆盖率。良好的测试实践能提升代码质量和项目稳定性。
110 1
|
6月前
|
分布式计算 Java 测试技术
Spark 单元测试报Error:(26, 16) java: 程序包sun.misc不存在
Spark 单元测试报Error:(26, 16) java: 程序包sun.misc不存在
118 0
下一篇
无影云桌面