原創|使用教程|編輯:鄭恭琳|2020-12-14 15:59:57.720|閱讀 251 次
概述:您可以使用人工智能來幫助將API活動組織為有意義的、可重用的和可擴展的測試,而不是簡單地收集、記錄和回放流量。它是記錄和重播測試的擴展,但自動化程度更高。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
您可以使用人工智能來幫助將API活動組織為有意義的、可重用的和可擴展的測試,而不是簡單地收集、記錄和回放流量。它是記錄和重播測試的擴展,但自動化程度更高。
之前,官方在Parasoft SOAtest中發布了一項名為Smart API Test Generator的新功能。我對此很不感冒。這項技術是合法的突破性技術——它使用人工智能將手動UI測試轉換為自動API測試,因此您無需具備API測試方面的專業知識,甚至不需要編寫任何代碼就可以入門。它們全部無腳本,并且通過一個適用于Chrome的簡單插件激活,因此您無需安裝大型工具集即可使用它。
但是,在我實際使用并真正熟悉這個功能之前,我的腦中還是會不斷地冒出來這個問題:這與市場上已有的記錄和重放技術有何不同?相信大部分測試或開發人員也會有相同的疑問。
答案是人工智能和機器學習……但是為什么呢?為了AI的緣故,AI毫無意義——為什么我們需要在API測試中添加人工智能?好吧,我們需要它是因為記錄和重放測試還不夠。我會進一步介紹這一點。
要真正擴展API測試的采用并解決測試團隊與開發保持同步的問題,您需要更多!我們希望能夠自動幫助用戶識別捕獲的API活動并將其組織成有意義、可重用和可擴展的測試,而不僅僅是收集、記錄和回放流量。我們需要降低API測試的采用標準,并讓更多的測試人員參與其中。
但首先,讓我解釋一下為什么如此重要。
從歷史上看,組織至少在最初就將UI測試作為主要的測試實踐,因為它易于定義和執行,并且易于自動化。進入門檻很低,并且可以擴展到一大批測試人員。
但是,這種完全依賴手動和UI測試的挑戰是隱性成本。與Selenium合作的任何人都知道,當UI更改時,事情會變得很困難,您需要更新腳本。實際上,我們發現多達80%的測試時間都花在了執行手動UI測試或修復由于應用程序更改而中斷的自動UI測試上。最重要的是,只有在完整的應用程序可用后才能執行UI測試——如果發現缺陷,則返工成本很高,因為在測試可以繼續進行之前,需要將應用程序拆開、固定和重新組裝。通常,這種后期周期缺陷檢測會導致明顯的發布延遲,并增加測試的總成本。
為了補充和減少對UI測試的依賴,組織可以利用API測試,該API通過提供可維護的端到端方案來解決許多這些問題,這些方案可以重復使用,而不僅僅是功能測試。API測試在開發人員和測試人員之間建立了良好的溝通渠道,因為它們有助于以具體,現實的方式記錄API的行為。將通過API測試發現的錯誤和安全漏洞的診斷和修復轉移到生命周期的較早階段,可以在實現計劃和質量目標方面獲得巨大回報。
但是,組織機構一直難以采用API測試,因為即使是很棒的API測試工具在歷史上也沒有提供足夠的幫助。為了有效地使用API測試工具,測試人員需要熟悉他們要測試的API,包括相關應用程序如何使用API,這需要專門的技能和專業知識。而且開發人員沒有時間測試它們,因此避免了這種極為有益的做法-測試人員站不住腳,開發人員不希望這樣做。
為了解決這一挑戰,功能測試自動化公司很多年前提出了記錄API活動并根據流量創建API測試的想法。之所以強大,是因為只需記錄應用程序和后端系統之間的事務,就可以捕獲API的活動,包括API調用如何重組正在傳遞的數據。
使用這項技術,您可以記錄后端系統中發生的情況。這有助于非技術用戶了解調用了哪些API并基本了解調用每個API時所使用的數據;但是,簡單的流量收集并不能幫助他們提高技能,也無法學習如何維護或擴展他們的測試。它無法教給他們使用API使用的所有不同消息格式和協議進行不同測試所必需的技術技能,并且它本身無法提供足夠的幫助以使非技術用戶可以采用這種做法。在路況記錄和功能齊全的API測試方案之間走很長的路。
這就是我們開始考慮降低采用API測試的障礙的下一步的地方。我們在想。僅記錄測試人員的UI與目標應用程序之間的網絡流量不足以幫助實現API測試自動化,以實現其實用性。它可能類似于MP3錄音。您可以播放它以收聽歌曲,但其中不包含有關如何創建歌曲或使用了哪些樂器的任何信息。這首歌無法修改或擴展。
通過簡單的記錄和重放測試,請考慮以下問題:
如果我的用戶界面改變了怎么辦?
UI在開發過程中不斷變化,維護基于UI的測試自動化非常耗時。UI僅公開了應用程序的基礎業務邏輯的某種表示形式,可能是有限的,并且依賴記錄和重播既有限制,又容易受到頻繁更改的破壞。
什么是正確的流量?
通過UI在系統級別進行應用程序測試將創建大量的網絡流量。即使對于訓練有素的眼睛來說,也很難確定哪些流量是在UI級別上發生的實際測試情況的一部分。依靠人工解釋網絡流量既費時又容易出錯。而且,它通常不是技能測試人員所擁有的,因此他們必須依靠開發人員來提供幫助。
如何將這些測試步驟連接到方案中?
從基本的流量記錄創建測試場景非常困難。如果創建場景需要進行多次測試,那么難度會成倍增加。重播流量記錄來代替場景通常很困難,因為它依賴于原始測試的確切前提。此外,例如,不可能重復播放相同的測試,這對于創建性能或與安全性相關的測試很重要。
如何獲取和重用知識?
流量記錄只是測試會話期間所有網絡活動的總和。沒有對底層消息傳遞的固有了解,也沒有與API服務的關系。沒有這些,就不可能將這些錄音擴展到其他目的,甚至無法進行更改以適應新的要求。它們通常會及時凍結,并且僅在記錄期間有用。
在這里,人工智能發揮了作用,因此流量記錄不僅可以進行,而且可以擴展為用戶真正的可操作的價值。這就是為什么我們開發智能API測試生成器的原因,因此我們可以為新手API測試人員提供一個無需編寫任何代碼即可開始進行API測試的地方。因此,用戶可以利用Parasoft SOAtest的簡單直觀界面,快速開始構建完整的、有意義的測試方案,甚至將這些API測試擴展到安全性和性能測試中。
它是如何工作的?
在測試UI時,智能API測試生成器會像對流量收集器一樣監視對應用程序進行的基礎API調用,然后使用人工智能發現模式并了解這些API調用之間的關系。然后,它可以生成自動化的API測試方案,這些方案執行與UI測試相同的操作,但是完全自動化并且易于擴展。
本質上,這是:
但是那為什么重要呢?以下是此方法提供的一些好處:
通過將您在瀏覽器中執行的操作自動轉換為對您在UI中執行的相同操作進行建模(以正確的順序)的自動化API測試,從而減少了確定構建API測試的正確方法所花費的時間。
通過基于不同API調用之間的關系自動創建完整的測試方案,可以更輕松地構建有意義的,全面的API測試。(沒有這些,用戶必須花時間研究測試用例,尋找模式并手動建立關系以形成每個測試方案。)
自動添加斷言和驗證以確保您的API能夠按預期工作,因此您甚至可以執行最復雜類型的斷言邏輯,而無需編寫任何代碼(否則可能會出錯)。
減少花在維護測試上的時間。由于它是無腳本的,因此用戶無需在服務更改時花時間為測試用例編寫代碼。
幫助開發和測試團隊與單個工件協作,兩個工件可以輕松共享和理解這些工件(與UI測試相比,它更能診斷出缺陷的根本原因)。
通過幫助用戶擴展測試,測試流程邏輯和數據解決方案,以完成在給定的短時間內全面驗證應用程序所需的全部API測試覆蓋范圍,為可擴展的API測試策略奠定基礎。
為什么我們甚至需要API測試
使用API測試補充UI測試
根據流量構建API測試(“記錄和重播測試”)
為什么記錄和重放還不夠
回到人工智能
綜上所述,該工具不僅可以基于對捕獲的API活動的有意義的解釋自動創建測試,而且還支持對這些測試的輕松擴展和維護,因此在整個軟件生命周期中其價值都會倍增。
所有這些本身就是好的。但是讓我更加興奮的是Smart API Test Generator可以幫助用戶理解UI動作和API調用之間的關系的部分,從而使測試人員更容易“熟練”并采用全面的API測試實踐。由于API測試可以完全自動化并且可以輕松擴展,因此團隊可以降低質量總成本,同時避免延遲發布。
讓我們分解一下。由于Smart API Test Generator承擔繁重的工作,為測試人員提供了輕松,無腳本的地方來開始構建API測試,因此降低了API測試的技術切入點,使初學者進入API測試世界和用戶友好的Parasoft SOAtest生態系統,用戶將從易于采用和使用的強大視覺工具中受益。
在系統和用戶界面測試期間收集API活動的流量不足以實現API測試自動化,但這是迄今為止行業所擁有的。對前提條件的依賴使這些錄音的可重用性降低,幾乎無法擴展用于其他目的。更不用說很難從復雜的流量中創建有意義的測試場景,這是大多數測試人員都不熟練的技能。
但這不再重要!現在我們有了Parasoft SOAtest Smart API Test Generator,用戶可以利用人工智能進行繁重的工作。初級的API測試人員可以使用它來入門并了解API測試的工作方式,而經驗豐富的API測試人員可以利用它來提高效率(這是我們現在使用它的主要方法之一,在Parasoft)。歸根結底,通過利用機器來構建有意義的、可擴展的和可重用的測試,組織可以從節省時間和金錢中受益。這只會是個越來越“人工智能”的時代!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn