最近学习了Tsung压力测试工具,对公司产品进行测试。Tsung内置支持的HTTP、MySQL、SOAP、Jabber等协议没有我们需要的,于是自己开发了一个插件支持自定义的协议。
Tsung 内部结构图:
Tsung是一个开源的工具,此处可以看见详细的Tsung程序源码:
https://forge.process-one.net/browse/tsung
通过对Tsung所支持的其它协议的源码发现,我们只需改动一下几个地方就可以实现
自定义插件的编写:
1.更新tsung-1.0.dtd
(定义自定义协议类型和请求类型)
2.创建erlang头文件存放解析的信息ts_myclient.hrl
3.编写解析XML的文件ts_config_myclient.erl
(以上源码为解析程序关键,解析的XML信息存放到记录myclient_request中)
4.编写生成数据的文件ts_myclient.erl
(以上源码为生成测试数据关键,根据记录myclient_request获得的信息生成自定义协议的测试数据)
5.将源码放入tsung的源码中编译
1)将ts_myclient.hrl放置到tsung安装目录:tsung-1.1.3/include下
2)将ts_config_myclient.erl放置到安装目录:tsung-1.1.3/src/tsung_controller下
3)将ts_myclient.erl放置到安装目录:tsung-1.1.3/src/tsung下
4)将更新后的tsung-1.0.dtd替换掉安装目录下的tsung-1.0.dtd
安装完tsung到这里新的插件制作安装已经完成,可以配置XML进行压力测试了.
注:这里提供的插件截图取于Process-one提供的示例图,如果自定义插件按以上步骤编写是完全没有问题的。
Process-one提供的一个完整实例:http://www.process-one.net/en/wiki/Writing_a_Tsung_plugin/