[微服務(wù)下的測(cè)試第三季] 新系統(tǒng)測(cè)試的策略
新的測(cè)試使用REST訪問(wèn)所有的服務(wù),這是比Java RMI更靈活和更通用的遠(yuǎn)程調(diào)用方式。 每個(gè)測(cè)試用例還會(huì)監(jiān)聽(tīng)在處理測(cè)試請(qǐng)求時(shí)在各種微服務(wù)之間發(fā)送的所有消息。 這使我們能夠在運(yùn)行時(shí)跟蹤測(cè)試的進(jìn)度,如果測(cè)試失敗,可以更輕松地找出錯(cuò)誤發(fā)生的位置。 這也意味著測(cè)試可以對(duì)系統(tǒng)中的事件作出反應(yīng),并觸發(fā)特殊的工作流程。
這些決定在某種程度上是非常明顯的,測(cè)試應(yīng)該與微服務(wù)語(yǔ)言相同。 通過(guò)這樣做,測(cè)試自然而然地運(yùn)行得更快,并且更容易調(diào)試。 我覺(jué)得我們可以做更多來(lái)減輕維護(hù)負(fù)擔(dān)。 為此,我們決定他們也將是數(shù)據(jù)驅(qū)動(dòng)的,并使用審批測(cè)試。
“新的測(cè)試使用REST訪問(wèn)所有的服務(wù),這是一種比Java RMI更靈活和更普遍的遠(yuǎn)程調(diào)用方式。”
數(shù)據(jù)驅(qū)動(dòng)測(cè)試
數(shù)據(jù)驅(qū)動(dòng)的測(cè)試意味著您通常保持工作流程相同,但不同情況下的數(shù)據(jù)會(huì)有所不同。 這樣可以最大限度地減少每個(gè)測(cè)試用例的新代碼數(shù)量,因?yàn)榇蟛糠謺r(shí)間足以改變輸入數(shù)據(jù)以便執(zhí)行新的或更新的功能。 在Pagero Online的情況下,最重要的用例是將發(fā)行者的文件發(fā)送給收件人。 所以這就是我們幾乎所有的測(cè)試都會(huì)使用的用例。
在這個(gè)基本的前提下,一個(gè)測(cè)試包括一個(gè)發(fā)行者,一個(gè)收件人,以及在他們之間發(fā)送的一個(gè)文件,還有一些你需要覆蓋的變化。 如果你看看我們的測(cè)試案例,基本上所有這些都是基于這三個(gè)要素的。
我們?cè)诮Y(jié)構(gòu)化文本文件中定義它們,與執(zhí)行用例的夾具代碼分開(kāi)。 夾具代碼解析文本文件,使REST調(diào)用在系統(tǒng)中創(chuàng)建相應(yīng)的發(fā)行者和收件人,然后代表發(fā)行者向PageRed在線請(qǐng)求發(fā)送文檔給收件人。
定義一個(gè)新的測(cè)試用例通常只是為這三個(gè)實(shí)體定義一個(gè)不同的配置。 只有當(dāng)你需要在這個(gè)基本的用例上有一個(gè)重要的變化時(shí),你才需要寫(xiě)入任何新的測(cè)試夾具代碼。
批準(zhǔn)測(cè)試
批準(zhǔn)測(cè)試是指您確定測(cè)試是否通過(guò)的方式。 您可能已經(jīng)熟悉了基于斷言的測(cè)試,您必須通過(guò)對(duì)所需輸出進(jìn)行斷言來(lái)決定每個(gè)測(cè)試用例的正確行為。 在批準(zhǔn)測(cè)試中,您將當(dāng)前輸出與之前測(cè)試運(yùn)行中收集的“批準(zhǔn)”版本的輸出進(jìn)行比較。 實(shí)際輸出和批準(zhǔn)版本之間的任何差異都被標(biāo)記為失敗。
因此,在Pagero Online中,我們存儲(chǔ)了提交給收件人的文檔的批準(zhǔn)版本。 我們還存儲(chǔ)了正在處理文檔時(shí)在服務(wù)之間傳遞的消息列表的批準(zhǔn)版本以及與其相關(guān)的任何錯(cuò)誤日志。 通過(guò)檢查Pagero Online的所有不同類型的輸出,我們可以確信文檔處理正確。
這種方法有幾個(gè)優(yōu)點(diǎn),特別是與數(shù)據(jù)驅(qū)動(dòng)的測(cè)試一起使用時(shí)。 您大多不必編寫(xiě)特定于某個(gè)測(cè)試用例的斷言代碼,從而進(jìn)一步減少了測(cè)試代碼的數(shù)量。 更重要的是,因?yàn)槊總€(gè)測(cè)試實(shí)際上都會(huì)檢查很多東西,所以當(dāng)你編寫(xiě)測(cè)試時(shí),最終會(huì)發(fā)現(xiàn)你沒(méi)有預(yù)料到的錯(cuò)誤。 例如,發(fā)現(xiàn)一個(gè)不應(yīng)該被發(fā)送的附加消息,或者在文檔演示文稿的第三頁(yè)上發(fā)現(xiàn)格式錯(cuò)誤。
微服務(wù) 自動(dòng)化測(cè)試
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。