PO模式
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class(封装在一个class类中),其中包含页面中需要测试的所有元素(按钮,输入框,标题等)的属性和操作,这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。当页面元素变化时,只需要更改测试页Class中页面的属性即可。
目的: 测试代码与被测页面对象代码分离,后期如果有页面元素发生了更改,只需要修改相应页面对象的代码,而不需要修改测试代码,后期好维护。
编写规范
1.变量、关键字的大小写、空格、下划线不敏感
关键字和参数之间至少2个空格,若有下划线和空格都会被忽略。比如Input Text、input text都可以
自定义关键字最好是首字母大写,命名要见名知意,每个单词间空一格,不要下划线和多余空格
2 同时执行多个关键字,AND必须大写
[Teardown] run keywords delete data AND reload page
3 条件表达式 的and 要小写
Run Keyword If '${name}'=='张三' and '${sex}'=='男'
4.ELSE IF ELSE 必须大写
run keyword if ***
... ELSE IF ***
... ELSE ***
5.FOR、IN、IN RANGE、END必须大写,且END 需必写,中间的空格都是两个或两个以上。如果用到IN RANGE 中间的空格是1个
RF标识
首字母大写
1.[Documentation] 给当前关键字加入说明
2.[Setup] 指的就是案例启动的时候执行某个关键字
3.[Teardown] 指的就是案例结束的时候执行某个关键字
4.[Template] 模板,所有的case就只需要设置这个关键字的传入参数即可
5.[Arguments] 传入参数
6.[Return] 返回值
7.[Timeout] 设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败
8. 标签
suit下打tag分为两种:一种是Force Tags,一种是Default Tags。放在***Settings***中
Force Tags:suit下面所有的测试用例都被打上这个tag,即使测试用例打了自己的tag, 也不起作用
Default Tags:suit下面的测试用例如果没有打tag,就会用这个默认tag, 如果打了tag,就用自己打的tag。
[Tags] tag # 单个用例的标签,放在case下面
命令执行:
pybot --include tag2 Test.robot 所有包含tag2的测试用例都会被执行
pybot --exclude tag2 Test.robot 所有包含tag2的测试用例都不会被执行
pybot --include tag1ORtag2 -e tag3 Test.robot 执行包含tag1或tag3但不包含tag2的测试用例
9. Suite Setup指的是测试套件启动的时候就执行某个关键字。测试套件是为测试执行目的分组而成的测试用例集合。
10. Suite Teardown指的是测试套件结束的时候就执行某个关键字