簡體   English   中英

運行包含超過一百萬個測試用例的測試套件

[英]Running a test suite with over a million test cases

我們有一個分布式測試環境,其中robotremoteserver啟動了許多其他應用程序,並在測試過程中使用它們。 我試圖運行的測試要求我在一個套件中運行超過一百萬個測試用例。 這里的問題是,當pybo t開始運行時,它會阻塞8 GB的RAM並導致性能下降。 過了一會兒它凍結了。

為了解決這個問題,我計划創建單獨的套件,每套套件少於100個。 但在這種情況下,我無法使用從其他套件啟動的其他遠程服務器中的關鍵字。 我可以使用它的唯一方法是斷開與遠程服務器的連接並在每個套件中重新連接 - 這將破壞測試的目的。

我不確定是否有人遇到過這種情況。 如果有人能想到這個問題的解決方案,我將不勝感激。

附加信息

另一個有助於解決此問題的事情是:是否可以從另一個套件啟動的庫(帶狀態)調用關鍵字?

使用RIDE時可以使用get library instance嗎? 我在一個套件中導入庫,然后嘗試在其他套件中獲取庫實例。 這可能嗎?

我一直收到以下錯誤:

AttributeError:遠程實例沒有屬性'replace'

在套件1中,這就是我正在做的事情:

Import Library    Remote    ${verifix_xmlrpc_url}    WITH NAME    Verifix
${lib}=    BuiltIn.Get Library Instance    Verifix
Set Global Variable    ${lib}

在套房2中:

${lib}.remove messages    ${VenueNSDQ}

我不知道有關Python的任何細節,但您可能想嘗試將每個測試用例作為一個單獨的過程。 這將允許您在完成時從每個進程恢復內存,並允許您在一台計算機上安全地運行百萬個測試用例。

通常,當一個程序需要來自操作系統的更多內存時,它需要它,但它不能在它退出之前將其返回。 這可能是您的流程失敗的原因。

你可以旋轉然后殺死的快速進程將緩解這個內存問題......然后從那里完全通過rsh在不同的機器上運行每個測試用例是一個非常短的步驟。

我希望這有點幫助。

好。 首先,我不用Python編程,我也不知道你使用的是什么類型的計算機,計算機有多少內存或者你的計算機狀況。 因此,這只是從編寫系統程序和跨多台計算機工作中收集的一般信息。

話雖如此:如果您要運行龐大的數據集或大量的程序,您將不得不對您想要的內容進行分區,以便它適合您正在使用的系統。 這是第一部分。

第二部分是如果你想跨程序與其他程序或系統交談,那么你需要設置某種類型的通用內存使用。 我知道PHP內置了這樣的東西所以我不得不假設Python也有這樣的東西。 您設置公共內存區域,然后在各種程序之間來回發送信息。 通常使用某種形式的令牌來識別每個程序和/或系統。 通過這種方式,您可以進行設置,這樣一旦完成一套測試,它就可以告訴下一組開始,從而不會接管或陷入系統。

如果你真的很好 - 你也可以創建某種控制器程序來啟動測試,觀察它直到測試結束/退出,然后開始下一個測試。 (因此,除了以菊花鏈方式執行此操作之外,您還有一種主/從方式,就像客戶端/服務器關系一樣。)

如果您使用的是Windows Box / OS,我建議您查看AutoIt。 一旦舊任務完成,AutoIt可以輕松處理觀看程序運行和啟動新任務。 它還允許您完全控制系統和遠程系統,並且開發用於幫助自動完成您正在嘗試執行的任務。 我發現(通過實驗)AutoIt也可以用於Unix / Linux盒子,如Mac等。 雖然您只有您發送的命令而不是訪問Windows功能。

如果你對Python更熟練,你可以使用它來做到這一點 - 那么你就會有更多的力量。 即使你問這個已經兩年了 - 我希望這可以幫助你完成你的努力。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM