soapui 使用 java_SoapUI的进阶使用
关于SoapUI的简单使用,大家可以参考网上并自己摸索下,这里就不说了,下面说的是一些不常见的用法(但是又很有用),再加一些性能测试方面的经验。
File Import
很多时候会有 File Import(Upload)类的Functions的,如果要用SoapUI做集成测试的话,免不了要处理 byte[] 类型的参数,那么如何通过SoapUI传递byte[](File)的参数了,实际上,也很简单,看图就很清楚了。
Property Transfer
Property Transfer 就是在SoapUI不同的Test Steps之间传递数据,具体的可以看看文档。通过下面的实例图你就创建了一个Property Transfer并添加了一个Transfer Value,而每个Transfer Value都有两个部分,一个是Source,一个是Target,都可以选择不同的Step和不同的Property。
如何配置这些内容,请看一个例子。e.g.
假设在一个系统中有一个function:send msg step,它需要一个参数,而这个参数是另一个Step:login 成功后的response,那么这种情况就可以这样:
贴上要写的配置信息:Source
declare namespace ns1='http://mic2.taifook.com/';//ns1:loginResponse/returnTarget
declare namespace mic2='http://mic2.taifook.com/';//mic2:send/arg0
Groovy
在SoapUI中可以写一些脚本,这个脚本语言就是,实际上平常我们需要使用的Groovy还是很简单的(因为和Java很类似),下面举一些例子来看看:
e.g.1rand
importstaticjava.util.UUID.randomUUIDrandomUUID()asString
这个就是用UUID作为一个随机字符串的例子,在Test Step中可以这样使用(上面Groovy Script 文件名为 rand)${rand#result}
e.g.2getAccount
defnum=Integer.parseInt(testRunner.testCase.getPropertyValue("count"))num= (++num) %10testRunner.testCase.setPropertyValue("count",num+"")String[]acList= ["02-0000000-22","02-1000001-22","02-2000002-22","02-3000003-22","02-4000004-22","02-5000005-22","02-6000006-22","02-7000007-22","02-8000008-22","02-9000009-22"]acList[num]
这个就是顺序并轮流从一个长度为10的字符串数组里取一个元素(第一行有些错误,一开始得不到 count’s PropertyValue ,你可以用类似第三行先 set count = 0 后删除,或者手动添加 count PropertyValue,如何添加?请自己google下),这个可以用来做一些性能测试的一些数据输入(可以做到尽量不同),用法和上面一样<MSG><REC instrCode="985" ... acId="${getAccount#result}" ... /></MSG>
e.g.3initData
importau.com.bytecode.opencsv.CSVReader;deffilename=testRunner.testCase.getPropertyValue("filename")log.info("[load data] CSV File Path and Name: "+filename)log.info("[load data] Reading the CSV...")CSVReaderreader=newCSVReader(newFileReader(filename));defisHeader=trueListapprovalList= []while((nextLine=reader.readNext()) !=null){if(isHeader) {isHeader=false}else{approvalList.addnextLine}}//set property to test case contextdefloopCount=0log.info("[load data] Number of Approval: "+approvalList.size())context.setProperty("approvalList",approvalList)context.setProperty("loopCount",loopCount);// get propertylog.info("[loop start] Current Loop Count: "+context.loopCount);defmsg=context.approvalList.remove(0)testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("userid",msg[0])testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("password",msg[1])testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("key",msg[2])testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("body","<![CDATA["+msg[3].trim() +"]]>")context.setProperty("loopCount", ++context.loopCount);
看到没有,这个例子就很像Java了,用其它的Jar包(opencsv-xxx.jar,请把它放到SoapUI安装路径下的lib目录下)里的方法来读csv格式的文件,然后把读出来的数据放到List中并存到context中,后面还用到了getTestCaseByName获得当前的Test Case(本例中TestCase名为Approval,请注意:不是Test Step名),并赋值以供使用。使用这里的值,也很简单${#TestCase#userid}
Load Tests
Load Tests就是使SoapUI连续多次执行一个Test Steps,目前我用到的是用它来做一些性能测试,很直观明了。使用它很简单,直接在【Load Tests】选项【New LoadTest】就可以了,大概会是下面的样子,具体的测试方法你就可以亲自试试了(比如Limit,Threads等配置)。
这个也是在工作中的一个分享,对象是有使用SoapUI经验的同事,所以,您看这部分,可能会有一些不清楚的,个人了解也不是很深,请大家尽量在官网多查查,希望对您探索SoapUI有点点帮助。
顺利2012年4月10日
博客中的一些下载已经放到了百度云了,请根据需要下载。【点我去百度云下载】
最后弱弱地说一下,如果可以的话,转载请提供出处(
),谢谢。
posted on 2012-04-11 10:17 李顺利 阅读(12746) 评论(1) 编辑 收藏 所属分类: Tips 、Tools
soapui 使用 java_SoapUI的进阶使用相关推荐
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下.本文从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写 ...
- 2023最新软件测试学习思维导图(从小白到大师进阶之路)
如下是我工作之余熬夜整理的软件测试学习思维导图,通过回顾多年的从业经验,总结提炼出来的一些东西,希望能对大家有些帮助,特别是刚入门软件测试行业或将要加入软件测试行业的同学,可以认真看一下,可以作为参考 ...
- 从功能测试进阶自动化测试涨薪7k,终究是逼了自己一把...
目录 前言 什么是自动化测试? 一.软件自动化测试的学习步骤 二.自动化测试的本质 三.自动化测试学习的误区 四.自动化测试的职位 五.自动化测试分类 六.Web自动化测试分类 七.自动化测试的知识点 ...
- 测试工程师全栈技术进阶与实践读书笔记
第一章 软件测试基础知识精要(上) 1.1 从"用户登录"测试谈起 1.1.1 功能测试用例 1.1.2 更多的测试用例 1.1.3 功能性需求与非功能性需求 对显式功能性需求的验 ...
- 正式压力测试:locust进阶,超简单搭建生产级locust集群
locust进阶,搭建生产级locust集群 本教程基于k8s集群搭建,使用helm作为包管理工具 通过helm安装locust
- 伍六七带你学算法 进阶篇-生命游戏
有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...
- NLP进阶之(七)膨胀卷积神经网络
NLP进阶之(七)膨胀卷积神经网络 1. Dilated Convolutions 膨胀卷积神经网络 1.2 动态理解 1.2.2 转置卷积动画 1.2.3 理解 2. Dilated Convolu ...
- js进阶 13-5 jquery队列动画如何实现
js进阶 13-5 jquery队列动画如何实现 一.总结 一句话总结:同一个jquery对象,直接写多个animate()就好. 1.什么是队列动画? 比如说先左再下,而不是左下一起走 2.怎么实现 ...
- 一个java高级工程师的进阶之路【转】
一个java高级工程师的进阶之路[转] 宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) ...
- SQL Server Extended Events 进阶 3:使用Extended Events UI
开始采用Extended Events 最大的阻碍之一是需要使用Xquery和XML知识用来分析数据.创建和运行会话可以用T-SQL完成,但是无论使用什么目标,数据都会被转换为XML.这个限制在SQL ...
最新文章
- 一文看懂模糊搜索1.0到3.0的算法迭代历程
- 【分析】腾讯年终总结:微信用户一天到晚都在干啥
- java编程石头剪刀布_java 开发的石头,剪刀,布的游戏 demo
- windows下将磁盘脱机,并在我的电脑下显示
- 2016-08-31
- 构建之法读书笔记02
- 卡巴世界,卡巴斯基,卡巴斯基key,卡巴斯基激活码,软件下载,每天更新
- Linux:20个linux常用命令
- 【Labplus 3】Scratch获取角色造型的数量
- MFC入门之 Ribbon界面设计
- Elasticsearch查询数据总条数1万条限制
- 如何用优盘安装服务器操作系统,使用优盘安装服务器
- 在Mac上阻止相机和麦克风的方法
- Java招聘网站源码+页面
- TeKtronix TDS210数字示波器说明书
- python创建目录(文件夹)
- 长园创新研究院 招聘FPGA高级工程师
- 微软校招2015 Beautiful String
- OGEM Shale Shaker with Electric Deck Angle Adjustment:Lastest Patent
- win7系统客户端无法访问ftp服务器,win7系统不能访问ftp的解决方法