在soapui上踩过的坑

资料来自网络

创新互联专注于企业全网整合营销推广、网站重做改版、汶上网站定制设计、自适应品牌网站建设、H5建站商城网站制作、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为汶上等各大城市提供网站开发制作服务。

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.eclipse的groovy插件 :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:基于标准的WSDL和XSD文件即可以进行。在MockSerice的Reponse产生后可以自行修改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;我们可以通过在其后加.wsdl(http://……/WapInterface?wsdl)获取wsdl内容,通过另存为.wsdl即可获取wsdl文件。

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

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

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

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

32 sqlmap注入

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

34。mockservice脚本返回对应的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 error,uncheck 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格式的,直接在后方增加参数即可,body和url需要选择传输方式为post,然后在auth中,编辑传输文本,参考:http://blog.csdn.net/xiaojianpitt/article/details/6856536


新闻标题:在soapui上踩过的坑
文章网址:http://azwzsj.com/article/gcghgj.html