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