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

这两天给公司一个新项目做上线前的压力测试,这个项目主要的接口有两个,获取订单号(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中使用动态参数(一)

时间: 2024-11-09 03:12:10

如何在tsung中使用动态参数(一)的相关文章

如何在IAR中配置CRC参数(转)

源:如何在IAR中配置CRC参数 前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间.CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时的完整性检查.在IEC60335中,也接受通过CRC校验对FLASH的完整性进行检查.在对FLASH完整性检查的应用中,需要事先计算出整个FLASH的CRC校验值(不包括最后保存CRC值的字节),放在FLASH的末尾.在程序启动或者运行的过程中重新用同样的方法计算整个FLASH的CRC校验值,然后与

function(函数)中的动态参数

我们可向函数传递动态参数,*args,**kwargs,首先我们来看*args,示例如下:     1.show(*args) def show(*args): print(args,type(args))    #以元组的形式向列表传递参数 show(11,22,33,44,55,66) 首先我们定义了一个函数,函数show(*args)里面的*args可以接收动态参数,这里我们接收一个元组形式的参数,我们可以向show()里面传递很多参数,函数默认把这些参数作为一个元组进行接收.     2

python函数中的动态参数

1.一级指针(*)动态参数一 在python中一个*表示将参数变成一个元组,可以接收多个参数 2.二级指针(**)动态参数二 在python中两个*表示将参数变成一个字典,在传值的时候必须是一对一对(键值对)的传,也可接收多个键值对 3.一级和二级混用时(万能参数) 在python中函数参数中包含一级和二级时,一级必须放到二级的前面 eg:f(p, *a, **b),不能写成f(p, **b, *a) 原文地址:https://www.cnblogs.com/oliverlucqut/p/887

asp.net mvc 如何在View中获取Url参数的值

如果url是 /home/index?id=3 直接Request就ok. 但是如果路由设定为:{controller}/{action}/{id} url是 /home/index/3   这时想在页面View中获取参数id的值,该怎么获取? 查了下资料好多人都利用Action获取到参数值后,用Viewdata传到View中例如Controlers中的phonelist这样定义  public ActionResult phonelist(int id)    {    ViewData["i

如何在.cs中统一动态修改xaml中style资源定义的样式

关于设置控件属性样式的方法已经在之前的博客中有提及过,博客地址:设置控件样式的方法 当然在实际项目编写过程中,不光单纯的需要设置元素样式,有时候需要动态的修改元素的样式,这个时候就有些不 同了.需要针对不同的情形来选择不同的方法修改样式. 情形一:单纯的修改一个控件元素的样式,那么只要在.cs中仅仅针对这个控件的样式属性的修改即可. 情形二:如果是要针对同一类的所有控件的样式进行相同的属性修改,比如针对页面中所有的Label控件进行修改, 那么对应之前你在给这些Label控件设置样式的不同做法,

如何在C++中使用动态三维数组

用new 和 delete 的方法来实现. 注意:在使用new申请内存时,在使用过后,一定要采用delete来进行释放内存. 使用该方法创建动态数组时,需要由数组的角标依次向右进行创建:同时,也需要依照角标,从左到右来进行删除. 代码功能为:声明三维动态数组,将角标和进行相加并添加到mfc的list中,然后释放内存. 具体代码如下 //声明三维数组,长处分别为X_Length,Y_Length,Z_Length int X_Length = 5, Y_Length = 6, Z_Length =

微信小程序for循环中传递动态参数

for循环中的参数,没法传到对应的 js里,所以直接在 wxml页面上跳转 发送参数的 wxml页面 <view class="uploader" wx:for="{{bookList}}" wx:for-item = "item"> <navigator url="../catalog/catalog?id={{item.id}}&title={{item.title}}" open-type=&q

Android中如何在ViewPager中使动态创建的ImageView铺满屏幕

最近在做东西的时候,有一个要求,就是把用于在ViewPager里面轮播的图片铺满屏幕,但是中间遇到的问题是,ImageView与屏幕之间总是有空隙,情况如下图所示: 当时第一反应时考虑用LayoutParam,可是几经尝试无果,后来在网上找到了解决方案,只要在创建ImageView的时候,把ImageView的属性ScaleType设为FIT_XY然后问题就解决了,具体的代码如下: ImageView imageView=new ImageView(context); imageView.set

如何在xml中传入list参数

mapper.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xxx.xx.cms.d