上述 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 。 底下附上幾張測試的畫面,供參考
可以從上面的圖示中,看出多半是聚焦在 絕對位置、相對位置、css 位置上,目前有測試到類似自動產生 Axes 方式的 XPath 的有:Katalon recordeer, Katalon studio 的付費 plugin:Smart XPath,這兩個工具,把最新的 Axes 方式納入了。而Katalon recorder 有的地方並沒有產出 Axes。所以付費的自有其價值,但試用版也不錯。如下圖
Katalon studio plugin : smart Xpath 的概念看起來是準備一組 array 把錄到的所有XPath 的方式存下來,當第一順位的定位方式無法正常執行成功時,便會去執行第二順位的定位。若確定第一順位自此以後都無效了,也可以做註記。以後就不會去跑這個定位了。(以上截圖都是同一個動作截下來的)。所以開發程式有系統規劃的進行,在自動化測試上就不會有寫一次廢萬次的情況產生了。以上提供參考。