接着昨天的table搞,那个table从上倒下一个value,id都没有,而且是动态的
选择匹配行的链接进行操作。
后来研究了半天发现element有个parent的方法,所以,简单了
先匹配“地图楼层”这个td,然后返回该td的parent,即该行的tr,然后再index到该tr的第二个td,可进行操作了:
$browser.td(:text, '3333').parent.[](1).link(:text, '修改').click
看来什么东西想精通,得多用啊。
然后根据cucumber的架构,搞了一些测试用例:
在feature 文件中是这样的:
# language: zh-CN
功能:楼层管理
作为一个管理人员
我能够进行楼层管理
场景: Case 1 - 验证界面元素(S2-ST-JBXXGL-LCGL-0001)
假如进入基本信息管理界面
当转入楼层管理界面
那么我可以看到楼层编号
并且我可以看到楼层名称
并且我可以看到修改
并且我可以看到删除
并且我可以看到添加楼层
场景: Case 2 - 正常添加楼层(S2-ST-JBXXGL-LCGL-0002)
假如进入基本信息管理界面
而且我进入楼层管理界面
而且点击添加楼层
#而且我已经在楼层编号里输入001
而且我已经在楼层名称里输入地下一层
当点击添加楼层
那么我应该在楼层管理界面
#并且我可以看到001
并且我可以看到地下一层
然后再初期的define step中有这样的两行:
Given /进入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
When /进入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
然后很和谐的报错了,cucumber在匹配
假如进入基本信息管理界面
当进入楼层管理界面
这两行的时候,神经错乱了,只好改成:
假如进入基本信息管理界面
当转入楼层管理界面
和
Given /进入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
When /转入(.*)界面/ do |module_name|
$autotest.navigate_to_module(module_name)
end
看来用中文写测试用例,也够费脑子的。
经过一个模块的实验,发现435个手工测试用例,大概要定义45个step,然后需要定义56个functional
不过,发现剩下的2000多个手工测试用例,需要新加的step应该不会超过20个 定义的功能也不会超过100个,完成了所有的手工测试测试用例----》自动化测试用的转变
哈哈 还是很厉害的,执行了20条case,大概一条在45秒, 算一分钟, 2500个测试用里 差不多5个小时也能执行一遍,而手工测试用例,大概需要500个人/时
所以,使用cucumber进行自动化测试,首先需要高质量的测试用例,然后还要进行挑选,没必要所有的测试用例都进行自动化。