关于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的进阶使用相关推荐

  1. SoapUI、Jmeter、Postman三种接口测试工具的比较分析

    前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下.本文从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写 ...

  2. 2023最新软件测试学习思维导图(从小白到大师进阶之路)

    如下是我工作之余熬夜整理的软件测试学习思维导图,通过回顾多年的从业经验,总结提炼出来的一些东西,希望能对大家有些帮助,特别是刚入门软件测试行业或将要加入软件测试行业的同学,可以认真看一下,可以作为参考 ...

  3. 从功能测试进阶自动化测试涨薪7k,终究是逼了自己一把...

    目录 前言 什么是自动化测试? 一.软件自动化测试的学习步骤 二.自动化测试的本质 三.自动化测试学习的误区 四.自动化测试的职位 五.自动化测试分类 六.Web自动化测试分类 七.自动化测试的知识点 ...

  4. 测试工程师全栈技术进阶与实践读书笔记

    第一章 软件测试基础知识精要(上) 1.1 从"用户登录"测试谈起 1.1.1 功能测试用例 1.1.2 更多的测试用例 1.1.3 功能性需求与非功能性需求 对显式功能性需求的验 ...

  5. 正式压力测试:locust进阶,超简单搭建生产级locust集群

    locust进阶,搭建生产级locust集群 本教程基于k8s集群搭建,使用helm作为包管理工具 通过helm安装locust

  6. 伍六七带你学算法 进阶篇-生命游戏

    有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...

  7. NLP进阶之(七)膨胀卷积神经网络

    NLP进阶之(七)膨胀卷积神经网络 1. Dilated Convolutions 膨胀卷积神经网络 1.2 动态理解 1.2.2 转置卷积动画 1.2.3 理解 2. Dilated Convolu ...

  8. js进阶 13-5 jquery队列动画如何实现

    js进阶 13-5 jquery队列动画如何实现 一.总结 一句话总结:同一个jquery对象,直接写多个animate()就好. 1.什么是队列动画? 比如说先左再下,而不是左下一起走 2.怎么实现 ...

  9. 一个java高级工程师的进阶之路【转】

    一个java高级工程师的进阶之路[转] 宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) ...

  10. SQL Server Extended Events 进阶 3:使用Extended Events UI

    开始采用Extended Events 最大的阻碍之一是需要使用Xquery和XML知识用来分析数据.创建和运行会话可以用T-SQL完成,但是无论使用什么目标,数据都会被转换为XML.这个限制在SQL ...

最新文章

  1. 一文看懂模糊搜索1.0到3.0的算法迭代历程
  2. 【分析】腾讯年终总结:微信用户一天到晚都在干啥
  3. java编程石头剪刀布_java 开发的石头,剪刀,布的游戏 demo
  4. windows下将磁盘脱机,并在我的电脑下显示
  5. 2016-08-31
  6. 构建之法读书笔记02
  7. 卡巴世界,卡巴斯基,卡巴斯基key,卡巴斯基激活码,软件下载,每天更新
  8. Linux:20个linux常用命令
  9. 【Labplus 3】Scratch获取角色造型的数量
  10. MFC入门之 Ribbon界面设计
  11. Elasticsearch查询数据总条数1万条限制
  12. 如何用优盘安装服务器操作系统,使用优盘安装服务器
  13. 在Mac上阻止相机和麦克风的方法
  14. Java招聘网站源码+页面
  15. TeKtronix TDS210数字示波器说明书
  16. python创建目录(文件夹)
  17. 长园创新研究院 招聘FPGA高级工程师
  18. 微软校招2015 Beautiful String
  19. OGEM Shale Shaker with Electric Deck Angle Adjustment:Lastest Patent
  20. win7系统客户端无法访问ftp服务器,win7系统不能访问ftp的解决方法

热门文章

  1. Acrel-3200远程预付费电能管理系统在福安东百城的应用
  2. 计算机学不学工程制图,如何学好工程制图
  3. 【非参数统计03】两独立样本的位置和尺度推断:Brown-Mood中位数检验、Wilcoxon-Mann-Whitney秩和检验
  4. android+流量防火墙,流量防火墙APP
  5. Lua内存泄露情况举例
  6. ubantu卸载MySQL数据库
  7. ASCII码对照表 (0-255)
  8. Java商店管理系统
  9. 人工智能——皇帝的新脑还是人类的终结(学习笔记)
  10. 华为NP课程笔记23-VRRP