摘要:葡萄城于年在中國設立研發中心,在全球化產品的研發過程中,不斷適應中國市場的本地需求,并為軟件企業和各行業的信息化提供優秀的軟件工具和咨詢服務。
?
因為項目的原因,前段時間研究并使用了 SoapUI 測試工具進行自測開發的 api。下面將研究的成果展示給大家,希望對需要的人有所幫助。
SoapUI 是什么?SoapUI 是一個開源測試工具,通過 soap/http 來檢查、調用、實現 Web Service 的功能/負載/符合性測試。該工具既可作為一個多帶帶的測試軟件使用,也可利用插件集成到 Eclipse,maven2.X,Netbeans 和 intellij 中使用。
SoapUI 的安裝下載地址,最好下載最新版本安裝包,因為 SoapUI 是基于 java 開發的測試工具,3.0 以前版本的安裝包沒有集成 JRE,這樣就得自己安裝和配置 java 運行環境了。
SoapUI 的使用1.在主界面 File 菜單,點擊“New REST Project”,填寫你想要測試的url,根據我們的項目 Teacher Site 中的 url 舉例:https://teacher-test.grapecit...:
?
參照下圖需要在 Resource 輸入框輸入 /Login/Login 路由,并在 Params 中輸入登錄時需要的查詢參數 accountName 和 password。
2.點擊綠色按鈕,SoapUI 發送登錄請求,可以在右側框中看到登錄請求返回的結果。
根據 Teacher site 項目的業務需求,發送 Login 請求完成后還得發送 SchoolItemChange 接口才會返回用戶登錄成功后認證的 Token,如下圖中 Set-Cookie 的值將會在下一個 GetOverview 接口的請求頭中 Cookie 屬性使用:
3.接下來的第三個請求 GetOverview 如下圖,在 Header 框中添加 Cookie 屬性,值就是上一個請求 SchoolItemChange 返回的 Set-Cookie 值:
自動化測試其實以上三個接口的調用,只是簡單的測試接口是否調用正常,如果想要對三個接口的調用進行自動化測試,請看下面的分解:
1.右鍵每一個接口下的 Request 請求,如圖所示,選擇”Add TestCase”項,依次為以上三個接口設置 Test Case,在 TestSteps 下分別有 Login,SchoolItemChange,GetOverview 三個 TestCases。
2.大家有沒有發現,在 Test Steps 下多了個 Set Cookie 項,這是干什么的呢?
這是通過 Groovy Script 語法,獲取上一個請求的返回值(此處是獲取 SchoolItemChange 接口的返回值”Set-Cookie”),并將”Set-Cookie”屬性值賦予下一個請求 GetOverview 的請求頭 Cookie 中,是不是和第2,3條很應景啊?!這樣就很好的解決了接口自動化測試,不用復制粘貼請求之間依賴的返回值。
3.接下來,就要為測試的接口添加 Assertion 斷言,點擊左下角的,彈出 Add Assertion 對話框,根據斷言注解,選擇需要的測試點,例如 Response SLA 表示請求發送后期望的響應時間:
?
Contains Assertion 則表示請求返回的字符串中包含指定的字符串。此斷言適用對比的內容不超過65535個字符,因為 Soapui 基于 java 語言編寫,這是 jvm 支持的最大字符個數:
4.為解決上述不能超過65535個字符的問題,則需要為接口添加 Script Assertion,如下代碼,表示將本地文件 GetOverview 01.txt 中的內容與請求返回中 HtmlOfPartialView 屬性的值進行對比,判斷兩者內容是否相等:
5.雙擊 Test Case,出現如下圖,點擊按鈕,或者選中 Login 右鍵選擇”Run from here”,則依次執行 Test Steps 步驟,如圖所示,出現紅色背景 Failed 字樣,查看右下角 TestCase Log 框,可以看出是由于 Step 4 GetOverview 接口請求的響應時間 1272ms 大于斷言中設置的時間 500ms:
發送郵件功能當你希望某個接口請求的結果以郵件方式通知給你時,如下圖所示,右鍵 Test Steps -> Add Step -> Groovy Script,添加 Send Email 腳本,其中 Username 和 Password 分別是公司郵件服務器的賬戶和密碼,Internet Address 即為接收的郵箱地址。
”${teacher-test#TestCase#Getoverview#Response}”的順序依次為
Test Suite name # Test Case name # Test Step name # Response:
壓力測試以上是功能性測試,接下來是壓力測試,右鍵 Load Tests 創建測試用例,
Limit:60 即為壓力測試的時間 60s,Thread 表示多線程,可以同時運行5個線程,Test Delay * Radom,表示隨機延遲的時間數。
min 表示最小響應時間,max 表示最大響應時間,avg 為平均響應時間,last 表示上一次請求響應時間,cnt 表示請求數,tps 表示每秒處理請求數,bps 表示吞吐率,rat 表示錯誤率。
右鍵可以為請求添加斷言,Max Errors 設置最大的錯誤數,Step Average 設置期望的平均時間,其他的依次類推:
如下圖,可以選擇不同策略的負載和性能測試:
最常用的是簡單策略(Simple),如果你想運行功能測試,并想在10秒內延遲5個線程,則 Threads 設置為5,延遲 1000s,隨機延遲比率0
秒)。
![圖片上傳中...]
方差策略(Variance),Threads 為方差的線程數量,Interval 為間隔設置所需的值。例如設置20個線程,間隔60和方差0.8,線程的數量將在第一個15秒從20增加到36,然后又減少到20,45秒后繼續減少到4個線程,最后等到60秒時返回到初始值20。在統計圖中我們很容易遵循這個方差:
線性策略(Thread),從一個線程到另一個線程的數量的運行。它的主要功能是確定某些統計數據變化或事件發生時的水平,例如設置開始和結束線程值(例如1 - 10),并設置持續時間(此例中每個線程至少30秒)獲得準確的測量數據:
持續集成在UI界面進行持續集成:右鍵項目名稱 REST Project 1 -> 選擇 Launch TestRunner,出現如下圖,在 Basic Tab 頁選擇 TestRunner 安裝路徑:
在 Reports Tab 頁選擇報告輸出文件夾:
點擊 Launch 按鈕,自動執行測試項目。
通過執行命令進行持續集成,以管理員身份打開 Command Prompt 對話框,執行如下命令:
testrunner.bat -s"teacher-test" -cLogin -r -j -f"D:TrivalsSoapUILogs" D:TrivalsSoapUIREST-Project-1-project.xml
該命令行的各個參數含義如下:
s: The TestSuite to run, used to narrow down the tests to run
c: The TestCase to run, used to narrow down the tests to run
r: Turns on printing of a small summary report (see below)
j: Turns on exporting of JUnit-compatible reports, see below
f: Specifies the root folder to which test results should be exported
其他更多的參數設置,請參考 SoapUI?官網地址:
https://www.soapui.org/test-a...
本文概要介紹了 SoapUI 工具的基本使用方法,也歡迎感興趣的讀者留言補充 SoapUI 的更多功能使用方法,大家共同學習進步。
轉載請注明出自:葡萄城控件
葡萄城年末福利火熱放送中 !凡在 2017 年 12 月 31 日之前,購買葡萄城控件團隊授權和企業授權的用戶,不僅可以享受到優惠的價格,還可獲贈葡萄城技術專家根據客戶項目需求提供的定制培訓服務。老客戶推薦新客戶成單,也將獲得“客戶推薦雙重感恩禮”。
了解更多:http://www.gcpowertools.com.c...
關于葡萄城葡萄城成立于1980年,是全球最大的控件提供商,世界領先的企業應用定制工具、企業報表和商業智能解決方案提供商,為超過75%的全球財富500強企業提供服務。葡萄城于1988年在中國設立研發中心,在全球化產品的研發過程中,不斷適應中國市場的本地需求,并為軟件企業和各行業的信息化提供優秀的軟件工具和咨詢服務。?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70638.html
摘要:協議學習常見請求方法學習和學習接口的基本概念接口文檔認識接口測試用例編寫接口測試工具使用軟件測試自動化進階性能測試性能測試的技術要求很高,不僅僅要對性能測試的指標測試分類測試設計有很深刻的理解。 ...
摘要:一持續集成對于微服務的意義拆之前要先解決合的問題在很多微服務化的文章中,很少會把持續集成放在第一篇,因為大多數的文章都會將如何拆的問題,例如拆的粒度,拆的時機,拆的方式。二持續集成就是不斷的嘗試在一起集成就是在一起。 此文已由作者劉超授權網易云社區發布。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 一、持續集成對于微服務的意義:拆之前要先解決合的問題 在很多微服務化的文章中,很...
摘要:持續交付持續交付是持續集成的擴展,可以保證穩定的發布產品新特性。持續部署持續部署是持續交付的下一步。持續部署可以加速用戶反饋新特性,避免發布日帶來的壓力。單元測試范圍非常小,驗證每個獨立方法級別的操作。 一、摘要 相信大家以前應該接觸過持續集成(Continuous integration)持續交付(continuous delivery)持續發布(continuous deploym...
摘要:用云效首先可以獲得研發模式的標準化,我們將其命名為,這是目前應用最廣最適合阿里巴巴的分支管理模式,不但具有高度自由,快速迭代的特性,還可以與流水線結合,讓整個公司具有統一的軟件交付規范。最終避免了的發布故障。 在2018第二屆研發效能嘉年華上,阿里巴巴云效技術專家崔力強帶來了如何做到高效軟件交付的精彩演講,首先介紹了阿里巴巴在近幾年在交付平臺上的技術經驗,以及目前云上工具平臺交易的趨勢...
摘要:架構設計實體化單元測試敏捷開發講究要快速的修改代碼,我們往往會發現,代碼修改的越頻繁,越多,這似乎是一個無法解決的矛盾。 本文由云+社區發表,作者:韓偉 互聯網開發的核心問題 當我1999年進入互聯網行業工作的時候,華為剛剛通過了著名的CMM認證。當時作為一個小程序員,非常向往業界經典的軟件開發模式。因為看上去,如果企業實行了CMM,我們程序員就不用再天天為了老板一個拍腦袋的主意而加班...
閱讀 3166·2021-11-04 16:09
閱讀 3143·2021-09-23 11:49
閱讀 3657·2021-09-09 09:33
閱讀 3646·2021-08-18 10:22
閱讀 2052·2019-08-30 15:55
閱讀 3641·2019-08-30 15:53
閱讀 2666·2019-08-28 18:08
閱讀 905·2019-08-26 18:18