您的位置:首页 > 产品设计 > UI/UE

SoapUI - Groovy Script小应用

2016-06-16 10:59 369 查看
为什么会有这个小应用出现呢?

事情是这个样子的:公司的项目,需要用到timestamp和accessToken这两个参数,原先我们的研发将获取参数的程序布在外网上,我们可以轻松使用SoapUI的Http Request,解析返回值,传参供后续其他Rest Request使用;现在,布程序的外网地址需要调整,那就苦了我们测试了,原先的辣么多HTTP request咋整?



看来,当初想偷懒不自己写代码获取参数的想法真是不太明智啊!

于是乎,特地请教了公司的研发,通过 Groovy Script获取timestamp和accessToken,哈哈,妈妈再也不用担心网址又变啦~~~

进入正题:

1. 首先,需要把java编程需要的jar包放进SoapUI安装目录下,如F:\Program Files\SoapUI-5.2.0\bin\ext;

链接: http://pan.baidu.com/s/1i5g28oX 密码: rj3t

2.打开 SoapUI,在需要获取参数的位置新建步骤 Groovy Script,代码如下:

import org.apache.commons.codec.digest.DigestUtils;

import org.apache.commons.lang.StringUtils;

def timestamp = String.valueOf(System.currentTimeMillis());

def accessToken = DigestUtils.md5Hex(String.format("%s%s%s", context.expand('${Properties#appid}'),context.expand('${Properties#client_secret}'), timestamp));

return [timestamp: timestamp, accessToken: accessToken] 

3.点击运行按钮,可以看到,返回了我们需要的timestamp和accessToken



4.代码分析

看看其实也很简单,才5行对不对,可是对于没有java基础的我来说,也是蛮困难的,看来该好好学习Java了!

当然,虽然我看不太懂,但是研发耐心啊,和我详细的解释了一番,小白就该勤奋,特此记录下来!

a. 最上面两句,是导入jar包,这个比较好理解;

b. 第三句,定义一个参数timestamp,并且定义了获取该参数的方法,这个方法不需要入参;

c. 第四句,定义另一个参数accessToken,也定义了获取该参数的方法,这个方法需要三个参数,其中一个参数就是上一步中获取的timestamp,另两个参数,我们也已经从数据库中获取,并存在变量Properties中,命名分别为appid和client_secret。如何引用Properties中的变量?context.expand('${Properties#xxxx}')即可!

d.
最后一句,返回我们需要的两个参数,这里使用jason返回,方便下一个步骤 Property Transfer中调用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  groovy java SoapUI