最近学习了Tsung压力测试工具,对公司产品进行测试。Tsung内置支持的HTTP、MySQL、SOAP、Jabber等协议没有我们需要的,于是自己开发了一个插件支持自定义的协议。

  

  Tsung 内部结构图:

  Tsung自定义插件 - 火枪手 - 火枪手

 

       Tsung是一个开源的工具,此处可以看见详细的Tsung程序源码:

       https://forge.process-one.net/browse/tsung

 

    通过对Tsung所支持的其它协议的源码发现,我们只需改动一下几个地方就可以实现

自定义插件的编写:

 

1.更新tsung-1.0.dtd

      Tsung自定义插件 - 火枪手 - 火枪手

                                          (定义自定义协议类型和请求类型)

 

2.创建erlang头文件存放解析的信息ts_myclient.hrl

      Tsung自定义插件 - 火枪手 - 火枪手

3.编写解析XML的文件ts_config_myclient.erl

  Tsung自定义插件 - 火枪手 - 火枪手

           (以上源码为解析程序关键,解析的XML信息存放到记录myclient_request中)

 

4.编写生成数据的文件ts_myclient.erl

Tsung自定义插件 - 火枪手 - 火枪手

(以上源码为生成测试数据关键,根据记录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/  

posted on 2011-03-26 11:56  musketeer  阅读(1083)  评论(0编辑  收藏  举报