码迷,mamicode.com
首页 > 其他好文 > 详细

如何在tsung中使用动态参数(一)

时间:2014-06-08 10:50:33      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:tsung   erlang   

    这两天给公司一个新项目做上线前的压力测试,这个项目主要的接口有两个,获取订单号(getOrderId)和确认订单(confirm),需要重点压测。开始,我们选择用python写测试例,python的好处是开发迅速,但是并发能力不够;我就想试试用tsung,tsung是用erlang写的,并发肯定没问题,但我以前只用来测试过静态网站,没有测试过动态API,查了查文档,发现tsung是支持用erlang脚本生成动态参数的,于是我决定用tsung。

    tsung的安装略过,看一下getorderId的配置:

  <request subst="true"> 
<dyn_variable name="order_id" jsonpath="data.order_id"/>
      <http url="/v5/order/getOrderId/" method="POST" version="1.1" contents="token=%%anysdk:get_token%%json_data=and"/> 
    </request>

说明:

   subst = "true" 表示启用动态参数,两个%%中间的内容即是参数所调用的erlang脚本,格式为module:fun,module为模块名,fun为函数名。

对应的erlang代码:

-module(anysdk).
-export([get_token/1]).

get_token({Pid, DynData}) ->
		{ MegaSec, Second, MicroSec } = erlang:now(),
		TimeStamp = MegaSec * 1000000 + Second + MicroSec/1000000,
		T2 = trunc(TimeStamp),		
		StrTime = integer_to_list(T2),
		base64:encode_to_string(StrTime).

说明:

    Pid为当前用户的进程号,貌似没啥用处,DynData是动态参数列表,用来从tsung传递参数,get_token不需要参数,所以也没用。

<span style="font-size:14px;"><dyn_variable name="order_id" jsonpath="data.order_id"/></span>
这句话是用来捕获服务端返回值的,getOrderId返回一个json串,这个指令通过jsonpath捕获到相应的对象并存到动态变量order_id中,供后续操作使用。


如何在tsung中使用动态参数(一),布布扣,bubuko.com

如何在tsung中使用动态参数(一)

标签:tsung   erlang   

原文地址:http://blog.csdn.net/u012973744/article/details/28652759

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!