soapui中的groovy脚本怎么写
答案:2 悬赏:0 手机版
解决时间 2021-03-20 06:16
- 提问者网友:最美的风景
- 2021-03-19 07:01
soapui中的groovy脚本怎么写
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-03-19 07:08
下载并安装 SoapUI 的免费版本.
当你第一次运行时,看起来像下面这样:
我创建了一个工作空间存储我的项目,叫做 Automation. 为此,我们要去选择 ‘File’-> ‘New Soap Project’ ,填入项目名称和web服务的.wsdl 文件位置.
请确保你勾选了创建请求 'Create Requests' 和创建测试套件 'Create TestSuite', 然后点击 'OK'.
SoapUI 将会检查web服务,返回你可以在服务上调用的操作/方法. 在我的任务中,只有一个叫做SubmitRequestResponse的操作, 但我还是选择了 'Single TestCase with One Request for Each Operation'.
点击 'OK' 而你将会收到提醒,告知要为Test SuiteMultiple命名.
现在当SoapUI已经设置好了项目, 展开整个项目结构如下:
如果你在 Request 1 上单击, 你可以看到一个基础的请求格式.
LeoXu
翻译于 5个月前
0人顶
顶 翻译的不错哦!
我们需要在继续进行之前确保调用从web服务上获得了一个响应,所以我们添加一个soap请求。在我的情况里,web服务需要一个客户号跟着一个地点位置标签跟着一个或多个SalesOrders。所以我在 body 中用我的soap请求替换<part>?</part>标签。
点击绿色箭头(左上方)然后你将获得一个XML响应。
如果你有响应,那么你就在你需要在的地方。
当你第一次运行时,看起来像下面这样:
我创建了一个工作空间存储我的项目,叫做 Automation. 为此,我们要去选择 ‘File’-> ‘New Soap Project’ ,填入项目名称和web服务的.wsdl 文件位置.
请确保你勾选了创建请求 'Create Requests' 和创建测试套件 'Create TestSuite', 然后点击 'OK'.
SoapUI 将会检查web服务,返回你可以在服务上调用的操作/方法. 在我的任务中,只有一个叫做SubmitRequestResponse的操作, 但我还是选择了 'Single TestCase with One Request for Each Operation'.
点击 'OK' 而你将会收到提醒,告知要为Test SuiteMultiple命名.
现在当SoapUI已经设置好了项目, 展开整个项目结构如下:
如果你在 Request 1 上单击, 你可以看到一个基础的请求格式.
LeoXu
翻译于 5个月前
0人顶
顶 翻译的不错哦!
我们需要在继续进行之前确保调用从web服务上获得了一个响应,所以我们添加一个soap请求。在我的情况里,web服务需要一个客户号跟着一个地点位置标签跟着一个或多个SalesOrders。所以我在 body 中用我的soap请求替换<part>?</part>标签。
点击绿色箭头(左上方)然后你将获得一个XML响应。
如果你有响应,那么你就在你需要在的地方。
全部回答
- 1楼网友:慢性怪人
- 2021-03-19 07:42
1.获取请求中参数的值:
设下图是我们已经建好的一步test step,它是一个rest test request,请求的参数有client_id和password两个,这一步step我们之前已经给它取名为user了
假设我们现在需要获取到client_id的值(也就是testor),那么我们可以新建一个groovy script,并且写入以下代码:
testrunner.testcase.teststeps['user'].getpropertyvalue("client_id")
在soapui中可以把它输出,结果就是我们想要的testor
2.获取响应结果的值
接上文,假设user这个request的返回结果是以下的json:
{
"code": 200,
"message": "",
"result": {
"token": "f7052eee86fa6087cc0d1b2bd8ba8040"
}
}
那么我们想要获取到token的值,应该怎么做呢?
首先,要通过soapui提供的groovyutils获取返回的xml消息的操作xmlholder
import com.eviware.soapui.support.groovyutils
def gu = new groovyutils(context)
def field = gu.getxmlholder("user#responseasxml")
接着,在xmlholder中使用xpath获取返回字段内容,可以自己写,如下:
def b= field.getnodevalue("//*:result/*:token")
如果觉得太麻烦老是写错path,而且你也不嫌代码难看,可以去assertion里选择xpath match,直接找到这个节点,用系统提供给你的值写到groovy中
即可以:def c=field.getnodevalue("//ns1:response[1]/ns1:result[1]/ns1:token[1]")
到soapui中查看输出结果,可以看到上文的b和c两个变量都能获取到正确的token值
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯