簡體   English   中英

ui自動化的唯一標識符

[英]Unique identifiers for ui automation

我們的ui自動化團隊正在尋求一種更好的方法來為自動化測試選擇元素。 我的想法是我們可以為每個可測試元素注入一個專用屬性(比如說“ui-auto”)。 此屬性的值為:

  • 獨特
  • 持久性(不會跨會話或頁面加載而改變,以免破壞測試)
  • 可預測的(遵循一些命名約定,具體取決於操作類型,位置等)

我的問題是:

  1. 這是一個好主意嗎? 歡迎更好的想法。
  2. 現有慣例嗎?
  3. 實現這個的最佳方法是什么?

我應該提到我們正在使用angular,我認為使用某種指令和/或服務可以幫助自動化。

我還應該說我不想使用“id”屬性b / c我想在開發問題之間分離(id可以用於javascript),qa關注(選擇自動測試的元素)

在我們的實現中,我們向DOM元素添加了一個data-awt屬性,該值由上下文(頁面和模式)類型和唯一字符串組成。 當我們使用EXTJS庫時,我們的類型是xtype,唯一的字符串是組件名稱或文本屬性。 上下文是開發人員通過在最上面的父項上放置一個唯一屬性來控制的,所有子項都使用它作為它們的上下文。

在實踐中,我們最終得到數據awt值,如devicesListing-button-edit,deviceDetails-displayfield-name,deviceDetailsEditWindow-textfield-name。

我們發現依賴於css,id或其他屬性是不可靠和可預測的,因為我們不想在有任何UI更改時重寫我們的測試。 現在,如果現有元素更改其名稱,則測試僅需要更新(例如,PM表示名稱字段現在應該使用來自DTO的“客戶”數據)。

您還可以使用元素的類,並提供前綴為“auto_”或“t_”之類的唯一標識符。

該協議存在,如果任何人用該前綴更改類名,測試將中斷。

@ o4ohel我同意不使用id更好,因為開發人員也依賴於他們,他們有時需要改變。 應該隔離自動化的標識符。 有這種分離是很好的。

暫無
暫無

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

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