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)

【本文转自 百度测试技术空间】 http://hi.baidu.com/baiduqa/blog/item/df3006ad0d9683d97cd92a0d.html
【 关注百度技术沙龙】

转载于:https://blog.51cto.com/baidutech/744455

sender通用收发包测试工具相关推荐

  1. 通用WsSocket压力测试工具

    通用WsSocket压力测试工具 需求分析: 现在的游戏服务器为支持多端,很多通讯协议都使用了wssocket来进行通讯,当项目进行到后端的时候,都需要开发一个模拟客户端的工具来进行压力测试,测试服务 ...

  2. 基于Python的收发包测试

    该测试主要目的是为了做自动发包获取相应服务器数据.数据全部采用HTTP的post方法传输,因此可以作为一个基础练手. 主要分为两大部分,储存用的json文件(用的是D:/Documents/SAVE_ ...

  3. API Testing 12 - API测试工具

    API Testing 入门基础系列 之 API Testing 12 - API测试工具 市场上有很多API测试工具,有一些是免费的,一些是付费的.有些免费版本只提供一些基本功能,当然也有很多好的免 ...

  4. MySQL测试工具之-TPCC(业界通用的压测工具)

    TPCC业界通用的压测工具,主要是压数据库性能. 首先安装tpcc 官网地址:https://github.com/Percona-Lab/tpcc-mysql [root@test3 src]# u ...

  5. live http工具下载_使用通用测试工具探索Blueworks Live REST API资源

    live http工具下载 本系列的第1部分介绍了5个一般用例,它们是使用IBM®Blueworks Live的代表性状态转移(REST)应用程序编程接口(API)的最佳方法. 您还为每种用例学习了不 ...

  6. 通用uart测试工具

    为了方便对UART驱动进行测试,特意开发了通用UART测试工具,该工具同时也可用于UART硬件测试和UART应用开发参考. 简要说明 命令行解析基于cmdParse模块,这个模块的功能和用法会单独说明 ...

  7. iperf3 网络带宽测试工具

    iperf3 网络带宽测试工具 iperf3 是一个 TCP, UDP, 和 SCTP (传输层协议)网络带宽测量工具. 简介 iperf 是一个用于主动测量 IP 网络上最大可用带宽的工具. 它支持 ...

  8. Linux 网络层收发包流程及 Netfilter 框架浅析

    本文作者:sivenzhang,腾讯 IEG 测试开发工程师 1. 前言 本文主要对 Linux 系统内核协议栈中网络层接收,发送以及转发数据包的流程进行简要介绍,同时对 Netfilter 数据包过 ...

  9. 深入理解 Cilium 的 eBPF(XDP)收发包路径:数据包在Linux网络协议栈中的路径

    Table of Contents 1 为什么要关注 eBPF? 1.1 网络成为瓶颈 1.2 eBPF 无处不在 1.3 性能就是金钱 2 eBPF 是什么? 3 为什么 eBPF 如此强大? 3. ...

最新文章

  1. iOS日常工作之常用宏定义大全
  2. 全志 修改KEY Patch
  3. linux文件系统启动流程,linux 内核启动过程以及挂载android 根文件系统的过程
  4. 动作游戏老是卡?试试从这些方面提升流畅度
  5. PaperNotes(12)-Autoregressive Quantile networks for generative modeling
  6. Navicat创建数据库表 、导入sql文件,生成表结构
  7. c++线程间通信的几种方法_JAVA并发之线程amp;进程
  8. Java中的关键字有哪些?
  9. php 包含因子,轻松掌握测量不确定度——(4)测量不确定度的评定和报告(完)...
  10. 独家发布全能在线语言翻译工具QTranslate v6.8.0 汉化中文版
  11. MySQL5.7 Group Replication (MGR)
  12. 基于nRF24L01的一对多节点通信(一收多发)
  13. 媒体连接(2)...
  14. 基于Python实现自然间断点批量处理
  15. 网吧管理系统的设计与实现
  16. js在html之前加载,js加载前显示loading(页面加载前)
  17. 上海出差之行--领略外滩美景、RT-Thread总部之旅、嵌友面基、返程记录
  18. python3教程:用concurrent执行多进程任务的方法
  19. PyQt5 QThread
  20. CHNG时间分片奖励发布

热门文章

  1. 虹科方案 | 制药环境中冰箱温度记录的最佳实践——全集成温度监测系统
  2. java 抽象类和接口——抽象类
  3. 两表联合查询的sql删除语句的写法(连表删除)
  4. 微信公众号-授权登录
  5. Android下的串口开发
  6. EtherCAT通讯简介
  7. trunk vlan pvid 学习实验整理 2
  8. 十、什么是临界资源及如何访问临界资源
  9. CSS中文字间距和行间距
  10. Android 离线人脸识别方案总结