自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SoapUI的進階使用

開發(fā) 后端
關于SoapUI的簡單使用,大家可以參考網(wǎng)上并自己摸索下,這里就不說了,下面說的是一些不常見的用法(但是又很有用),再加一些性能測試方面的經(jīng)驗。

關于SoapUI的簡單使用,大家可以參考網(wǎng)上并自己摸索下,這里就不說了,下面說的是一些不常見的用法(但是又很有用),再加一些性能測試方面的經(jīng)驗。

File Import

很多時候會有 File Import(Upload)類的Functions的,如果要用SoapUI做集成測試的話,免不了要處理 byte[] 類型的參數(shù),那么如何通過SoapUI傳遞byte[](File)的參數(shù)了,實際上,也很簡單,看圖就很清楚了。

Property Transfer

Property Transfer 就是在SoapUI不同的Test Steps之間傳遞數(shù)據(jù),具體的可以看看文檔 Transferring Property Values。通過下面的實例圖你就創(chuàng)建了一個Property Transfer并添加了一個Transfer Value,而每個Transfer Value都有兩個部分,一個是Source,一個是Target,都可以選擇不同的Step和不同的Property。

如何配置這些內(nèi)容,請看一個例子。e.g.

假設在一個系統(tǒng)中有一個function:send msg step,它需要一個參數(shù),而這個參數(shù)是另一個Step:login 成功后的response,那么這種情況就可以這樣:

貼上要寫的配置信息:

Source

  1. declare namespace ns1='http://mic2.taifook.com/';  
  2. //ns1:loginResponse/return 

Target

  1. declare namespace mic2='http://mic2.taifook.com/';  
  2. //mic2:send/arg0 

Groovy

在SoapUI中可以寫一些腳本,這個腳本語言就是 Groovy ,實際上平常我們需要使用的Groovy還是很簡單的(因為和Java很類似),下面舉一些例子來看看:

e.g.1

rand

  1. import static java.util.UUID.randomUUID  
  2. randomUUID() as String  

這個就是用UUID作為一個隨機字符串的例子,在Test Step中可以這樣使用(上面Groovy Script 文件名為 rand)

  1. <arg2>${rand#result}</arg2> 

e.g.2

getAccount

  1. def num = Integer.parseInt(testRunner.testCase.getPropertyValue( "count" ))  
  2. num = (++num) % 10 
  3. testRunner.testCase.setPropertyValue( "count", num + "")  
  4. String[] acList = [  
  5. "02-0000000-22",  
  6. "02-1000001-22",  
  7. "02-2000002-22",  
  8. "02-3000003-22",  
  9. "02-4000004-22",  
  10. "02-5000005-22",  
  11. "02-6000006-22",  
  12. "02-7000007-22",  
  13. "02-8000008-22",  
  14. "02-9000009-22" 
  15. ]  
  16. acList[num] 

這個就是順序并輪流從一個長度為10的字符串數(shù)組里取一個元素(***行有些錯誤,一開始得不到 count’s PropertyValue ,你可以用類似第三行先 set count = 0 后刪除,或者手動添加 count PropertyValue,如何添加?請自己google下),這個可以用來做一些性能測試的一些數(shù)據(jù)輸入(可以做到盡量不同),用法和上面一樣

  1. <arg3>  
  2. &lt;MSG>&lt;REC instrCode="985" ... acId="${getAccount#result}" ... />&lt;/MSG>  
  3. </arg3>  

e.g.3

initData

  1. import au.com.bytecode.opencsv.CSVReader;  
  2.  
  3. def filename = testRunner.testCase.getPropertyValue( "filename" )  
  4. log.info("[load data] CSV File Path and Name: " + filename)  
  5. log.info("[load data] Reading the CSV...")  
  6.  
  7. CSVReader reader = new CSVReader(new FileReader(filename));  
  8.  
  9. def isHeader = true 
  10. List approvalList = []  
  11.  
  12. while ((nextLine = reader.readNext()) != null) {  
  13.   if (isHeader) {  
  14.       isHeader = false 
  15.   } else {  
  16.       approvalList.add nextLine  
  17.   }  
  18. }  
  19. //set property to test case context   
  20. def loopCount = 0 
  21. log.info("[load data] Number of Approval: " + approvalList.size())  
  22. context.setProperty("approvalList",approvalList)  
  23. context.setProperty("loopCount",loopCount);  
  24.  
  25. // get property  
  26. log.info("[loop start] Current Loop Count: " + context.loopCount);  
  27. def msg = context.approvalList.remove(0)  
  28.  
  29. testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("userid",msg[0])  
  30. testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("password",msg[1])  
  31. testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("key",msg[2])  
  32. testRunner.testCase.testSuite.getTestCaseByName("Approval").setPropertyValue("body","&lt;![CDATA[" + msg[3].trim() + "]]&gt;")  
  33.  
  34. context.setProperty("loopCount", ++context.loopCount); 

看到?jīng)]有,這個例子就很像Java了,用其它的Jar包(opencsv-xxx.jar,請把它放到SoapUI安裝路徑下的lib目錄下)里的方法來讀csv格式的文件,然后把讀出來的數(shù)據(jù)放到List中并存到context中,后面還用到了getTestCaseByName獲得當前的Test Case(本例中TestCase名為Approval,請注意:不是Test Step名),并賦值以供使用。使用這里的值,也很簡單

  1. <arg0>${#TestCase#userid}</arg0>  

這里的例子只是冰山一角,更多的請參考:

Tips & Tricks 

Property Expansion

這個也是在工作中的一個分享,對象是有使用SoapUI經(jīng)驗的同事,所以,您看這部分,可能會有一些不清楚的,如果有什么建議或問題的話,可以通過微博 http://weibo.com/lishunli 或 QQ:506817493 或 Email:leeshunli@qq.com 聯(lián)系到我,大家一起交流學習。

原文鏈接:http://www.blogjava.net/lishunli/archive/2012/04/11/373769.html

【編輯推薦】

  1. Java RMI遠程調(diào)用
  2. 在Eclipse中使用JSHint檢查JavaScript
  3. 淺談Java的方法覆蓋與變量覆蓋
  4. Java類變量和成員變量初始化過程
  5. JavaScript表格組件加載速度測試

 

責任編輯:林師授 來源: 李順利的博客
相關推薦

2010-08-30 17:06:15

DHCP中繼

2023-10-27 08:59:00

網(wǎng)絡wiresharkIO

2021-03-15 12:23:24

Pythonyield代碼

2023-06-28 11:36:41

2023-10-28 10:10:41

2024-06-14 07:47:37

2020-03-16 09:45:09

前端docker代碼

2021-12-27 16:24:11

鴻蒙HarmonyOS應用

2021-02-20 09:27:36

Python編程語言機器學習

2014-04-08 15:40:57

Windows 8.1

2015-07-02 13:32:22

黑客中國黑客

2021-01-13 09:40:26

Linuxexport命令

2024-11-05 16:58:21

RabbitMQ訂單超時取消延遲隊列

2024-10-16 09:29:30

RabbitMQ延遲隊列

2022-03-11 09:22:55

令牌Dotnet線程

2010-07-05 10:46:47

RIP路由協(xié)議

2021-01-14 05:21:59

Hive抽樣函數(shù)

2014-01-07 14:53:37

Android開發(fā)依賴注入Roboguice

2017-03-07 09:45:43

iOSBlock開發(fā)

2010-05-06 16:20:33

eigrp負載均衡
點贊
收藏

51CTO技術棧公眾號