<pre id="ff7yo"></pre>

      <form id="ff7yo"><legend id="ff7yo"></legend></form>
        <nav id="ff7yo"><listing id="ff7yo"></listing></nav><nav id="ff7yo"></nav>

        <nav id="ff7yo"><listing id="ff7yo"></listing></nav>
        <small id="ff7yo"></small><nav id="ff7yo"><dd id="ff7yo"></dd></nav>
      1. <nav id="ff7yo"></nav>
          <form id="ff7yo"></form><nav id="ff7yo"></nav>
          <nav id="ff7yo"></nav>
          <sub id="ff7yo"></sub>
          更多課程 選擇中心

          軟件測試培訓
          達內IT學院

          400-111-8989

          怎么并行自動化測試,你知道嗎?

          • 發布:咖啡貓
          • 來源:51Testing軟件測試網
          • 時間:2019-04-19 15:36

          當遇到大量的UI自動化測試用例,怎么并行進行自動化測試呢?并行自動化測試的要求是什么呢?今天我們就一起來了解一下吧:

          在自動化測試過程中的某些時刻,你將遇到一個共同的問題,那就是:需要花費很長時間去執行大量的UI自動化測試用例。最為有效地加速用例執行的方式就是并行地運行自動化測試。不幸地是,使各個自動化測試用例并行地執行并非一件容易的事情。典型地,線程安全就沒有融入到自動化測試中去。線程安全可以確保代碼編寫完成后,程序可以運行并操作各種數據結構而不產生意想不到的結果。

          為了測試可以并行地運行,需要滿足一些強制性的要求。這些要求同我們的一些客戶每天用來幫助運行五萬條自動化測試用例所需的條件相同。

          四個強制要求如下:

          1.測試必須是原子的

          你的自動化測試用例應該形成一個單一的不能簡化的單元。這就意味著你的測試必須極其集中并且每個測試用例只做一件事。一個單獨的自動化測試用例應該不能測試端到端的功能。

          在我的團隊中使用的一個比較好的經驗辦法就是:自動化驗收測試在你本地資源上運行的時間不能超過一分鐘,實際上當然是運行越快越好,但是也不要太著急、慢慢來,可以逐步改進運行時間。如果你的測試用例運行時間超過一分鐘,那將是很危險的事。

          有一個例子,在這個存儲庫中可用的非原子測試(NAT)。本篇文章將自始至終地引用此測試庫中的內容。

          原子測試可以快速失敗

          為什么要使用原子測試?首先,它讓你盡早地快速地失敗。這就意味著你將得到及其快速的有針對性的反饋。如果你想檢查一個特征功能的狀態,原子測試只會花費你不到一分鐘的時間就能讓你拿到結果。

          原子測試可以降低薄片行為

          第二,寫原子測試用例減少了薄片,因為它降低了測試過程中可能出現的斷點數量。薄片是自動化測試領域的一個概念,它是指測試展示出一種無效的測試結果,例如原本失敗的用例結果顯示通過了或者原本通過的用例結果顯示失敗了。一個沒有薄片的自動化測試是一個可以正確傳達系統狀態的測試---無論被測系統是否正常運行。

          原子測試考慮到了更好的測試

          原子測試第三點好處就是一旦一個原子用例失敗了,它不會阻止你進行其他功能的測試。比如,一個普通測試在第25行失敗了,假如你不手動執行測試用例去驗證剩余的功能話,那么在25行之后的功能點都不會被測試到。所造成的結果就是,如果你正進行大范圍的測試,由于有一些特性沒有被測試到,實際上就降低了測試覆蓋率。

          2.測試必須是自主的

          一個自主的自動化測試是指測試本身并不依賴其他測試的結果。一種常見的反面模式就是將所有的用例連接到一起執行以避免重復執行一些測試步驟,這種反面模式是從加速執行測試集演變而來的。

          例如,你要先執行登陸測試、再執行搜索測試、最后執行結算測試。為了進行結算場景的測試,所有的測試項目都應該按照正確的順序進行。

          這對于平行化來說就是一個很大的挑戰了,因為它意味著你的測試永遠不可能失序的進行。如果不按順序執行第一步到第三步,那測試結果將失---但是這種失敗并不是因為應用系統里有BUG,而是設計邏輯本該如此,是因為結算的場景里需要一個已登錄的用戶,而具體測試時由于打亂了三步的順序致使登陸操作是失敗的。

          3.正確管理你的測試數據

          測試數據的管理對完成并行測試來說是非常關鍵的。管理測試數據最為有效的方式就是使用實時數據。這就意味著你在測試過程中有很多種方式來創造和銷毀數據。一個RESTFUL風格的API接口可以實現這一功能,并且這是最優的方法。

          遺憾的是:在我的WEB應用里沒有現成的RESTFUL風格的API可供使用。因此,我和開發人員一起合作,容許JavaScript注入來控制應用程序的狀態和數據。這樣我們測試團隊就可以解決如何在不需要事先登陸、搜索商品、添加商品到購物車的情況下進行購物車結算了。

          通過適當的測試數據管理,我可以直接打開購物車頁面。結果就是我可以旁路掉/忽略掉登陸頁面和搜索商品頁面。

          在你使用API或者JavaScript操作應用程序的狀態后,你就可以使用任意的UI自動化工具執行相關的測試步驟。

          4.不能使用靜態關鍵字

          這里有一個一般性的經驗法則:在你的自動化代碼里不要使用靜態關鍵字。這既是最簡單的需要遵循的規則,同時也是最危險的。

          在面向對象的程序設計語言中一個靜態關鍵字會要求程序在代碼運行期間內給一個變量分配一個單獨的內存空間,這就意味代碼運行期間這個空間的內容不能改變。任何使用靜態變量的程序都將信息存儲在單獨的內存空間里。

          一個單一的錯位的靜態關鍵字實例會毀掉你所有并行測試的希望。也許這個經驗法則(指“不要使用靜態關鍵字”)會有很多例外情況,但是確保安全總比意外發生后懊悔不已好得多。

          例如,在你的瀏覽器中創建一個靜態的瀏覽器驅動關鍵字,當你嘗試并行地運行所有測試用例時,這些用例都將嘗試使用唯一的瀏覽器驅動。就會造成一種局面:一個用例正在準備鍵入賬號密碼時,另一個用例嘗試打開一個不同的頁面等等,結果這些用例會將瀏覽器驅動實例帶到不同的方向上去,最終造成各種稀奇古怪的錯誤。

          使測試又快又準確

          自動化需要快速地進行才能發揮它的作用,同時并行測試是快速執行完測試用例的一種最好的方式。但是并行運行自動化測試的時候,你需要原子的、非依賴性的用例,并且這些用例里不能包含任何靜態關鍵字,并且你需要正確地管理測試數據集。

          感謝您的閱讀,以上就是達內軟件測試培訓分享給你的怎么并行自動化測試的相關內容,你理解了嗎?更多軟件測試相關的內容盡在達內軟件測試培訓機構官網,敬請關注!

          免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:零基礎入門IT行業選軟件測試好,為什么?
          下一篇:這五件事,將對軟件測試的未來產生重大影響!

          軟件測試必備的數據庫知識有哪些?(終)

          日志在快速定位自動化腳本故障中的重要性研究

          測試慣例是什么?怎么打破測試慣例?

          “用鼠標點點點”的測試,未來還有機會嗎?

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          陜西省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          神马影院-战旗影院-首播影院-新视觉影院-在线观看中文字幕dvd播放 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>