接著昨天的table搞,那個table從上倒下一個value,id都沒有,而且是動態(tài)的
選擇匹配行的鏈接進(jìn)行操作。
后來研究了半天發(fā)現(xiàn)element有個parent的方法,所以,簡單了
先匹配“地圖樓層”這個td,然后返回該td的parent,即該行的tr,然后再index到該tr的第二個td,可進(jìn)行操作了:
$browser.td(:text, '3333').parent.[](1).link(:text, '修改').click
看來什么東西想精通,得多用啊。
然后根據(jù)cucumber的架構(gòu),搞了一些測試用例:
在feature 文件中是這樣的:
# language: zh-CN
功能:樓層管理
作為一個管理人員
我能夠進(jìn)行樓層管理
場景: Case 1 - 驗(yàn)證界面元素(S2-ST-JBXXGL-LCGL-0001)
假如進(jìn)入基本信息管理界面
當(dāng)轉(zhuǎn)入樓層管理界面
那么我可以看到樓層編號
并且我可以看到樓層名稱
并且我可以看到修改
并且我可以看到刪除
并且我可以看到添加樓層
場景: Case 2 - 正常添加樓層(S2-ST-JBXXGL-LCGL-0002)
假如進(jìn)入基本信息管理界面
而且我進(jìn)入樓層管理界面
而且點(diǎn)擊添加樓層
#而且我已經(jīng)在樓層編號里輸入001
而且我已經(jīng)在樓層名稱里輸入地下一層
當(dāng)點(diǎn)擊添加樓層
那么我應(yīng)該在樓層管理界面
#并且我可以看到001
并且我可以看到地下一層
然后再初期的define step中有這樣的兩行:
Given /進(jìn)入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
When /進(jìn)入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
然后很和諧的報錯了,cucumber在匹配
假如進(jìn)入基本信息管理界面
當(dāng)進(jìn)入樓層管理界面
這兩行的時候,神經(jīng)錯亂了,只好改成:
假如進(jìn)入基本信息管理界面
當(dāng)轉(zhuǎn)入樓層管理界面
和
Given /進(jìn)入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
When /轉(zhuǎn)入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
看來用中文寫測試用例,也夠費(fèi)腦子的。
經(jīng)過一個模塊的實(shí)驗(yàn),發(fā)現(xiàn)435個手工測試用例,大概要定義45個step,然后需要定義56個functional
不過,發(fā)現(xiàn)剩下的2000多個手工測試用例,需要新加的step應(yīng)該不會超過20個 定義的功能也不會超過100個,完成了所有的手工測試測試用例----》自動化測試用的轉(zhuǎn)變
哈哈 還是很厲害的,執(zhí)行了20條case,大概一條在45秒, 算一分鐘, 2500個測試用里 差不多5個小時也能執(zhí)行一遍,而手工測試用例,大概需要500個人/時
所以,使用cucumber進(jìn)行自動化測試,首先需要高質(zhì)量的測試用例,然后還要進(jìn)行挑選,沒必要所有的測試用例都進(jìn)行自動化。