soapui 使用 java_SoapUI的进阶使用

soapui 使用 java_SoapUI的进阶使用关于SoapUI的简单使用,大家可以参考网上并自己摸索下,这里就不说了,下面说的是一些不常见的用法(但是又很有用),再加一些性能测试方面的经验。FileImport很多时候会有FileImport(Upload)类的Functions的,如果要用SoapUI做集成测试的话,免不了要处理byte[]类型的参数,那么如何通过SoapUI传递byte[](File)的参数了,实际上,也很简单,…

大家好,又见面了,我是你们的朋友全栈君。

关于SoapUI的简单使用,大家可以参考网上并自己摸索下,这里就不说了,下面说的是一些不常见的用法(但是又很有用),再加一些性能测试方面的经验。

File Import

很多时候会有 File Import(Upload)类的Functions的,如果要用SoapUI做集成测试的话,免不了要处理 byte[] 类型的参数,那么如何通过SoapUI传递byte[](File)的参数了,实际上,也很简单,看图就很清楚了。

screenshot-20120327104943.png

Property Transfer

Property Transfer 就是在SoapUI不同的Test Steps之间传递数据,具体的可以看看文档。通过下面的实例图你就创建了一个Property Transfer并添加了一个Transfer Value,而每个Transfer Value都有两个部分,一个是Source,一个是Target,都可以选择不同的Step和不同的Property。

screenshot-20120328181006.png

如何配置这些内容,请看一个例子。e.g.

假设在一个系统中有一个function:send msg step,它需要一个参数,而这个参数是另一个Step:login 成功后的response,那么这种情况就可以这样:

screenshot-20120328173450.png

贴上要写的配置信息: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等配置)。

screenshot-20120328181558.png

这个也是在工作中的一个分享,对象是有使用SoapUI经验的同事,所以,您看这部分,可能会有一些不清楚的,个人了解也不是很深,请大家尽量在官网多查查,希望对您探索SoapUI有点点帮助。

顺利2012年4月10日

博客中的一些下载已经放到了百度云了,请根据需要下载。【点我去百度云下载】

最后弱弱地说一下,如果可以的话,转载请提供出处(

),谢谢。

b32.png

posted on 2012-04-11 10:17 李顺利 阅读(12746) 评论(1)  编辑  收藏 所属分类: Tips 、Tools

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150180.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle PL/SQL编程之五: 异常错误处理(知已知彼、百战不殆)

    Oracle PL/SQL编程之五: 异常错误处理(知已知彼、百战不殆)Oracle PL/SQL编程之五:异常错误处理(知已知彼、百战不殆) 本篇主要内容如下:5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4  用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明

    2022年6月17日
    32
  • Laravel 登录后清空COOKIE 方法

    Laravel 登录后清空COOKIE 方法

    2021年10月27日
    70
  • 史上最全的正则表达式-匹配中英文、字母和数字

    史上最全的正则表达式-匹配中英文、字母和数字在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。1、匹配中文:[\u4e00-\u9fa5]2、英文字母:[a-zA-Z]3、数字:[0-9]4、匹配中文,英文字母和数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_…

    2022年9月25日
    4
  • phantomjs入门使用

    phantomjs入门使用PhantomJS是一个命令行工具。确保您熟悉命令提示符或PowerShell(在Windows上)或终端(在macOS和Linux上)的使用。这个指令假设PhantomJS已经安装并放置在路径的某个地方(例如,Windows用户请参阅本教程)。官网:https://phantomjs.org/中文网:http://wenku.kuryun.com/docs/phantomjs/index.html一、下载地址:https://phantomjs.org/download.html选择对应操

    2022年7月14日
    21
  • java logbook_SpringBoot使用Logbook记录HTTP请求响应日志

    java logbook_SpringBoot使用Logbook记录HTTP请求响应日志SpringBoot的httptrace端口能够记录每次访问的请求和响应信息,但是不能记录body,这样在出问题时就不方便排查,而且httptrace不方便在原有的基础上进行扩展,所以只能寻求其他方式进行记录。Logbook是一个可扩展的Java库,可以为不同的客户端和服务端技术提供完整的请求和响应日志记录。它能够满足一些特殊的需求:允许web应用记录程序接收或发送的所有HTTP通信易于保留和进…

    2025年8月13日
    4
  • 人体表面积的计算公式_体表面积快速计算公式

    人体表面积的计算公式_体表面积快速计算公式体表面积(BSA)即是人体表面积。由于形状的特殊性,直接测量非常复杂。多年来,人们总结出许多计算公式用于估算体表面积。使用这些公式,身体表面积将以平方米计算出来。常用体表面积计算公式:1)Mosteller公式:一个最经常使用的公式,发布于1987年。BSA(m²)=([身高(cm)x体重(kg)]/3600)^½。2)DuBois与DuBois公式(1,注):BSA(…

    2022年4月19日
    485

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号