千家信息网

在soapui上踩过的坑

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,资料来自网络1.新建一个DataSource,选择Excel(需要Excel2003格式),选择行号,设置起始行结束行,设置规则,trim等2.在返回结果的outline中,可以直接选定一个记录进行t
千家信息网最后更新 2025年12月02日在soapui上踩过的坑

资料来自网络


1.新建一个DataSource,选择Excel(需要Excel2003格式),选择行号,设置起始行结束行,设置规则,trim

2.在返回结果的outline中,可以直接选定一个记录进行transfer to 另一个step的参数

3.DataSource循环设置:插入一个DataSource loop步骤,设置循环的数据源和执行步骤

4.插入验证点:选择步骤,选择结果为response,选择preporety contends ,选择message contents assertion 不能动态去从Excel中去取,如果loop中含有非标内容,需要用脚本断

5.用脚本断言方法:post页面,点击地址栏左侧的增加断言的按钮,然后选择Script,打开脚本编辑页面,在页面中getdata,从response中获得对应的值,从DataSource中获得对应的值,用assert 变量.equels(exp)来断言,这样就可以用DataSourceloop功能了。

6.DataSource中,单击扳手符号,在打开的对话框中可以选择Trims datavalue,对参数去空格处理

7.testcase详情页面,点击扳手,可以选择fail tast cast on error ,勾选为出错此用例不继续执行;

8.groovy的最后一个调用的方法的返回值,就是当前groovy脚本的返回值,在另外的step中,可以直接使用其return xx来接收返回值作为参数;

9.eclipsegroovy插件 :http://dist.springsource.org/release/GRECLIPSE/e4.3/

10.[错误:参见37]关于可选的的参数,需要用两个用例,在加密的时候使用,在参数化的时候去掉可选参数:

11.loadtest 可以做简单的性能测试

12.在左侧的row窗口中,可以查看到完整的拼装之后的post的请求url

如果一个返回的row中含有多个Set-Cookie

//获取登录的token值,

def cookiesList = testRunner.testCase.getTestStepByName("DoLogin.html").testRequest.response.responseHeaders["Set-Cookie"]

def cookieSessionKey

def cookieSessionKeyValue

for (i=0;i

cookieSessionKey = cookiesList.get(i).split(";")[0];

cookieSessionKeyValue= cookieSessionKey.split("=")[0];

if (cookieSessionKeyValue == "JSESSIONID"){

log.info "cookie : "+cookieSessionKey.split("=")[1]

return cookieSessionKey.split("=")[1]

}

}

13.数据源相对路径设置: 选中一个项目,在项目的下方有一个workspace properties,设置其中的project root${workspaceDir},在脚本中就可以使用作为相对路径

14.设置脚本模板:在soapui左上角点击扳手图标,在弹出框中可以设置脚本模板code templates

15.新建rest的时候,可以从接口文档的事例中通过例子去导入参数,左上角第三个按钮,可以通过special url来更新参数

16.同一个endpoint的多个请求,可以在一个请求下面new resource,这样可以把多个请求放在一起,不用再根节节点新建多个请求

17.选中project testsuites ,选项卡中可以选择执行的用例。

18.在用例上右键可以选择enable用例,这样在执行的时候,就可以跳过此用例

19.remove掉测试工程不会真删

20.测试环境地址改变,可以直接在链接的详情页面,打开service EndPoints选项卡,直接修改地址

21.coverage /?此处需要详细了解一下。

27.Mock Service:基于标准的WSDLXSD文件即可以进行。在MockSericeReponse产生后可以自行修改Response返回的内容。完成后对MockService进行启动,并挂接到已有的Request上面即可以开始模拟操作。可以将MockService模拟服务发布为一个WAR包,即将WAR包引入到JAVA项目中后完全就可以作为服务模拟端使用,基本不用再独立开发服务模拟端的代码。(Mock的工程上右键,可以deploy as war 即可)

28.模拟接口按条件返回:http://www.cnblogs.com/zerotest/p/4670005.html

参数规则:${参数名}

脚本中使用context.setProperty( "参数名", Math.random()) //返回一个随机数

29.通过webservice地址获得wsdl文件:给定的地址一般分为以下两种:

第一,http://……/WapInterface;我们可以通过在其后加.wsdlhttp://……/WapInterface?wsdl)获取wsdl内容,通过另存为.wsdl即可获取wsdl文件。

第二,http://……//GovOnline.asmx;我们使用同样的方法http://……//GovOnline.asmx?wsdl即可方便的得到wsdl文件。

拷贝页面内容后,在首行加上: ,保存为wsdl文件即可

30.REST请求的Mock,新建一个REST请求,设置请求方式POST/GET,在响应中选择json,编辑生成的json

31 mockservice中有乱码问题,在返回的参数设置中,econding设置为UTF-8即可

32 sqlmap注入

33.修改endpoint:打开request,在service endpoint选项卡中,添加一个endpoint,点击Assign,可以弹出批量修改的节点类型,也可以在TestStep中去修改单个节点的endpoint

34mockservice脚本返回对应的response:mockservices下选择dispatch的方式为script

// Match based on query parameter

def queryString = mockRequest.getRequest().getQueryString()

log.info "QueryString: " + queryString

if( queryString.contains("1612121459580001") )

{

// return the name of the response you want to dispatch

return "Response 1"

}

else if( queryString.contains("1612121459580002") )

{

// return the name of the response you want to dispatch

return "Response 2"

}

35.JDBCrequest:可以用于数据库验证 ,可以用建立参数表,用参数传递的方式来做数据库验证

36.testrunner访问层级关系:testRunner.testCase.testSuite.project.testSuites[testSuiteName].testCases[testCaseName].testSteps[testStepName]

37.参数为空的时候,如果需要把参数名带入url中,可以在原始请求request的参数列表中,选中参数,勾选set if parameter is required,保存即可。

38.出错继续执行:双击testcase在上方的扳手处,打开对话框,找到about on erroruncheck Abort on Error

39.datagan常用的数据

40.DataSource loop 只要是数据源和loop step之间的step都不会被loop,可以用一个脚本来调用其他脚本,然后把被调用的脚本disable掉。

41.步骤之间的跳转可以通过testRunner.gotoStepByName( "token")来进行

42.condition goto 参考:http://www.w3school.com.cn/xpath/index.asp

A.用的是xpath的语法

B.选取节点后,直接通过 = 去比较,即通过返回值设定跳转

43.多个step循环,可以通过一个groovy脚本中testRunner.runTestStepByName("stepname"),把要循环的step都设置成disable,即可

44.数据传输方式:fromparam,URLparam,bodyparam,form格式的,直接在后方增加参数即可,bodyurl需要选择传输方式为post,然后在auth中,编辑传输文本,参考:http://blog.csdn.net/xiaojianpitt/article/details/6856536


参数 选择 脚本 数据 页面 地址 多个 文件 方式 时候 内容 可以通过 扳手 步骤 循环 数据源 方法 节点 项目 传输 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 银行前置机与服务器的区别 学校网络安全信息安全重要性 温州通信网络技术常见问题 免费的数据库管理 学生参加网络安全知识竞赛图片 网络安全需要学面向对象嘛 数据库有哪些实现原理 ps4软件开发商 x99主板配服务器内存 重庆做软件开发公司 通辽市app软件开发 武汉大专软件开发实习工资 放置海岛为什么没有服务器 徐汇区银联数据库服务商有哪些 税务系统网络安全合规 数据库日志在操作后保存 底层软件开发入门 网络安全现状出现哪些新的特点 栖霞区常规软件开发创新服务 服务器安全免费 金宇网络安全插画 服务器是可配置计算机的资源吗 新闻系统数据库建表 数据库文件操作题 北京酷划在线网络技术公司 网络技术员是什么工作 软件开发组长有用吗 我的世界怎么删除服务器角色记录 实况足球8怎么修改数据库 我的世界云梦服务器怎么加人
0