在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://ybzwz.com/article/gcghgj.html