本文主要是介绍如何在tsung中使用动态参数(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一篇博客说过,在配置getOrderId请求时,可以用动态变量(order_id)解析和捕获服务端返回的json对象。这个变量可以作为接下来的订单确认请求(Confirm)的输入参数。看一下Confirm请求的配置:
<request subst="true">
<http url="/v5/Pay/payConfirm/?signature=%%anysdk:ck_sign%%&cpOrderId=%%_order_id%%" method="GET" version="1.1" />
</request>
注意,“_order_id"不是笔误,前面的下划线是必须的。通过%%_order_id%%,我们可以在url中直接使用动态变量。
另外,我们还需要把order_id传入anysdk:ck_sign中,这要如何实现呢? 你不能在配置文件中指定函数的参数,tsung会将所有的动态变量作为参数传入,你可以通过ts_dynavars:lookup()取出你所需要的变量,上erlang代码:
ck_sign({Pid, DynData}) ->
{_,Val} = ts_dynvars:lookup(order_id, DynData),StrVal = binary_to_list(Val),Id = [{"cpOrderId",StrVal}],...
需要注意的地方有两点,
1. tsung的帮助文档中是用{ok,Val} = ts_dynavars:lookup(...),这样写会导致匹配失败,网上很多帖子都在问这个问题,要把ok换成_。
2. Val是二进制数据,需要用binary_to_list转成string再使用。
这篇关于如何在tsung中使用动态参数(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!