soapui 碰到数组怎么填充数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了soapui 碰到数组怎么填充数据相关的知识,希望对你有一定的参考价值。

参考技术A 例如如下数据,calendar_id是需要根据返回值动态获取的,此时需要通过获得数组中的calendar_id
"calendar":
[
"calendar_id":"1705","showtime":"1288927800","endshowtime":"1288931400","allDay":false,
"calendar_id":"1706","showtime":"1288933200","endshowtime":"1288936800","allDay":false,
"calendar_id":"1709","showtime":"1288935600","endshowtime":"1288938900","allDay":false
]


在SoapUI中可以通过groovy脚本实现提取json数组数据,提取到数据后就可以遍历访问列表中的每条新闻正文了
1.新建一个REST请求步骤,获取接口返回的数据
2.新建一个DataSource步骤,选择Groovy方式
3.添加一个名为cal_id的Properties
4.groovy编辑框中输入实现代码

[java] view plain copy
import groovy.json.JsonSlurper

def xresponse = testRunner.testCase.testSteps["getCalendarListByCoid"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def re = slurper.parseText(xresponse)
def num=re.calendar.size()
def i = testRunner.testCase.testSteps["DataSource"].currentRow
if(i<num)

result["cal_id"]=String.valueOf(re.calendar_id.id[i])


5.新建一个Property Transfer步骤,将DataSource的cal_id传递给当前testCase的变量
6.新建 一个REST请求步骤,将得到的cal_id去请求另一个接口
7.新建一个DataSource Loop步骤,使DataSource与Property Transfer步骤循环,这样就可以遍历数组中的每个数据了

[reply]tz0705010216[/reply]
你好
以博文中的json为例,新增的groovy步骤则如下:
def xresponse = testRunner.testCase.testSteps["getCalendarListByCoid"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def re = slurper.parseText(xresponse)
def id = re.calendar.calendar_id[i] //i为json数组中的第i个子json对象
若为在脚本断言处添加groovy断言,则如下:
def xresponse = messageExchange.modelItem.testCase.testSteps["getCalendarListByCoid"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def result = slurper.parseText(xresponse)
def id = re.calendar.calendar_id[i] //i为json数组中的第i个子json对象

soapui接口测试怎么连接数据库进行测试

以soapUI自带的sample project为例,学习利用DataSource进行login --》search(循环)--》logout
DataSource 的类型有:Data Connection/ Grid / File/ XML /groovy /excel /directory/JDBC
为了让DataSource能循环起来,还要和DataSource Loop结合,下面分布学习Grid / File /excel /Data Connection
1. 创建testcase,添加基础的step:login/ search/ logout
并且在search中对
2. 新增step:DataSource
并且新增一个Property:search_string, 选择类型:Grid 新增参数:Item 1 / Item 2 / Item 3 / Item 4
在新参数后,可以运行DataSource中的绿色运行按钮,可以测试一下datasource是否可用(下面有data log查看)
3. 新增step:DataSource Loop, 在DataSourceLoop配置对话框中选择datasource step,选择target step
4. 在search request中配置相关session id / searchstring
session id的参数设置,就是选择login response产生的session (之前的学习中有介绍过)
searchstring的参数设置类似,这里我们选择在DataSource中添加的search_string
5. 以上设置好后,就能运行测试用例了,
通过TestCase log /Http Log 我们能看出测试用例确实利用了我们添加的参数在循环测试

上面学习了DataSource中最简单的Grid类型,下面接着学习File /Excel / Dataconnection
其实我们只有简单改变一下步骤2中DataSource的配置,根据类型的不同进行相应的设置就可以了
File类型
---------------------------
准备格式如下的文件(参数必须一行一行写,我尝试用,隔开不起作用)
在配置项中选择相应的文件,运行测试一下,一般没什么问题

Excel类型
----------------------------
准备excel文件,注意保存为2003格式,2007格式似乎不能读取
配置一下

DataConnection类型 (我现在的是MySQL连接)
---------------------------
首先在mysql数据库中准备数据
配置data connection 正确填写各项,并利用Test connection测试连接是否成功
注意的是,在配置之前,检查 soapUI 安装目录下的 \jre\lib\ext 中是否有mysql jdbc的driver,如果没有必须下载放进行,否则不能连接成功
我从CSDN中下载的mysql-connector-java.jar

配置好连接后,有相应的sql 查询语句配置页面,也可以自己写,我这些的是: select * from item;
执行一下,看看能不能查询出结果 (data log 中显示出来了,但具体的值没显示出来,不知道为何,但确实可用)
参考技术A 1.新建soapUI工程:右击左侧导航面板中的工作空间节点“Project”,选择“New soapUI Project”,输入工程名称,点击OK

2.新建TestSuite:右击Project名,选择“New TestSuite”

3.新建 TestCase:右击TestSuite名,选择“New TestCase”

4.添加数据源:右击“Test Steps”,选择“Add Step“,选择“DataSource”

5.添加HTTP请求:右击“Test Steps”,选择“Add Step“,选择“HTTP Test Request”

6.添加循环:右击“Test Steps”,选择“Add Step“,选择“DataSource Loop“

7.添加数据源数据:选择数据源类型之后进行添加,下图以excle为例

8.添加http请求数据:选择http请求类型之后进行添加,下图以POST请求为例

9.添加loop:将数据源和http请求关联

10编辑完成后运行测试case进行正确性的测试,为了保证运行的正确性,可以添加断言对结果进行检查

当显示的测试结果为FINISHED时,表示测试通过。
参考技术B 新建soapUI工程:右击左侧导航面板中的工作空间节点“Project”,选择“New soapUI Project”,输入工程名称,点击OK

新建TestSuite:右击Project名,选择“New TestSuite”

新建 TestCase:右击TestSuite名,选择“New TestCase”

添加数据源:右击“Test Steps”,选择“Add Step“,选择“DataSource”

添加HTTP请求:右击“Test Steps”,选择“Add Step“,选择“HTTP Test Request”

添加循环:右击“Test Steps”,选择“Add Step“,选择“DataSource Loop“

添加数据源数据:选择数据源类型之后进行添加,下图以excle为例

添加http请求数据:选择http请求类型之后进行添加,下图以POST请求为例

添加loop:将数据源和http请求关联

编辑完成后运行测试case进行正确性的测试,为了保证运行的正确性,可以添加断言对结果进行检查

当显示的测试结果为FINISHED时,表示测试通过。

以上是关于soapui 碰到数组怎么填充数据的主要内容,如果未能解决你的问题,请参考以下文章

填充一个数组,然后调用一个函数

用随机列表中的 2 个值填充 2D 数组(2048 游戏)

制作这个数组并存储在 mongodb 然后填充它

C#如何 将一个布尔型数组全部 填充为false

用核心数据属性填充数组

用循环填充数组