選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
2 分鐘閱讀時間 (472 個字)

有關 xpath auto healing

logan-weaver-b76PEyeIptQ-unsplash-2

自動化測試上,Selenium 提供了七種 Locators

  1. ID
  2. Name
  3. Class Name
  4. Tag Name
  5. Link Text & Partial Link Text
  6. CSS Selector
  7. XPath

上述 1-6 項都有命名不能重複的必要性,所以再開發程式規劃上,哪一類要用 id, name 鑑別,哪一類要用 Class, Tag 鑑別 ... 是需要周詳考慮的。在要進行測試的項目上,若沒有合適 1-6 項的定位方式,XPath 便會是被採用的一項。

XPath 有分:絕對位置、相對位置(相對於其上的 id, name ...),陸續也有出現所謂的臨近便是的 Axes 軸概念。參考

所以當應用程式,測試程式都撰寫好了,之後有需要異動時,也請參考上述的定位方式,當然上述的定位通通改掉了,就沒有機會透過 auto healing(自我治癒)的方式,讓測試程式仍以原始不變的碼進行測試。auto healing 的概念是把所以可以定位的方式都先寫進測試程式中,當定位1有異動測試不過時,變執行第二個定位。測試了幾個小工具: Katalon recorder, selenium recorder, Ranorex Selocity , XPath Generator 。 底下附上幾張測試的畫面,供參考

katalon recorder by chrome

Selenium IDE

Ranorex Selocity

可以從上面的圖示中,看出多半是聚焦在 絕對位置、相對位置、css 位置上,目前有測試到類似自動產生 Axes 方式的 XPath 的有:Katalon recordeer, Katalon studio 的付費 plugin:Smart XPath,這兩個工具,把最新的 Axes 方式納入了。而Katalon recorder 有的地方並沒有產出 Axes。所以付費的自有其價值,但試用版也不錯。如下圖

Katalon studio plugin : smart Xpath

Katalon studio plugin : smart Xpath 的概念看起來是準備一組 array 把錄到的所有XPath 的方式存下來,當第一順位的定位方式無法正常執行成功時,便會去執行第二順位的定位。若確定第一順位自此以後都無效了,也可以做註記。以後就不會去跑這個定位了。(以上截圖都是同一個動作截下來的)。所以開發程式有系統規劃的進行,在自動化測試上就不會有寫一次廢萬次的情況產生了。以上提供參考。

壓力測試個案規劃
從 log 海中激起增進效能的靈感