自动化项目的目录结构:python
建议的目录结构。。。web
以robot --pythonpath . tc命令执行tc用例下面全部的用例shell
builtin库里面的Run Keywords方法实现初始化测试
结构优化:- 合并重复的初始化和清除操做优化
- 去掉多余的管理员登陆操做ui
- 合理重组目录结构递归
RF用例的执行:开发
robot framework的命令格式: robot [options] data_sourcesit
* options命令的选项,能够为空自动化
* data_sources则是要执行的测试套件文件或目录的路径。能够是绝对路径,也能够是相对路径,至关于当前shell的工做的目录。
robot tests.robot
robot path/to/my_tests/
robot c:\robot\tests.robot
* 若是指定的是测试套件文件,则执行该文件中全部的测试用例
* 若是指定的是测试套件目录,则递归执行该目录下包含的全部的子目录里面全部测试套件文件里面的用例
* 能够指定多个要执行的测试套件文件、目录,甚至用通配符来表示多个测试,以下:
robot my_tests.robot your_tests.robot
robot --name Example path/tp/tests/pattern_*.robot
* 多个测试数据的状况,本次测试的名称就是把他们的名字相加
robot --pythonpass . --name 回归测试 tc
根据名称选择测试用例:
咱们能够经过 --test --suite来指定执行哪些用例或者套件,并且还支持用通配符的方式
--test Example # 执行名为example的用例
--test mytest --test your_test # 执行名为mytest和yourtest的用例
--test example* # 执行名字以example开头的用例
--suite mysuite # 执行名为mysuite的套件
参数文件:
若是有时,参数太长,咱们一般可使用参数文件,咱们能够把全部的参数都放在参数文件中,好比:
--pythonpath .
--name 回归测试
--test tc00001
--test tc00002
tc
就能够执行 robot -A args.txt
RF用例标签:
还有一种选择用例的方法,,是根据用例的标签。
咱们能够给测试用例打上标签,这样在运行时,能够经过标签指定要运行那些用例,测试用例能够有多个标签,咱们根据任何一个标签均可以过滤到该用例。
给用例打标签有以下几种方式:
① Settings表里的Fore Tags
若咱们在测试套件文件里Settings表设置了Fore Tags,那么该套件里的全部测试用例都具备了该标签。
若咱们在测试套件目录初始化文件的Settings表设置了Fore Tags,那么该套件里面全部的测试用例都具备了该标签。
| *** Settings *** |
| Fore Tags | web test | my test|
| Default Tags | all test |
② 测试用例表里的[Tags]配置
| *** Test Cases *** |
| case1 |
| | [Tags] | one |
| | log to console | default browser:${browser} |
| | baidu search | robot framework | Robot framework
③ Settings表里的Default Tags
若咱们在测试套件文件的Settings表设置了Default Tags,那么该套件里面全部没有[Tags]设置的测试用例,都具备了该Tag。
注意:测试目录里面的__init__.robot不支持Default Tags
根据标签选择测试用例:若是用例有了标签,在执行自动化时,咱们能够这样指定执行哪些标签的测试用例,如:
-- include foo # 执行包含标签‘foo’的用例
-- exclude foo # 执行不包含标签‘foo’的用例
-- include oneAND"web test" # 执行包含标签‘one’,‘web test’的用例
-- include oneORtwo # 执行包含标签‘one’和'two'的用例
-- include oneNOtwo # 执行包含标签‘one’,可是不包含标签‘two’的用例
举例说明:robot --include web测试 "webtest"
robot --include "admin"AND"teacher" "webtest"
robot --include * "webtest"
指定关键测试用例:
若是本次测试中有关测试用例没有经过,那么整个测就被视为测试不经过。反之, 整个测试就视为经过。
缺省状况下,RF执行测试时,每一个测试用例都被视为关键测试用例
咱们能够经过命令参数 ---critical (-c)和--noncritical (-n) 后面加Tag名称来指定测试用例是否为关键测试用例
--critical regression 指定 只有具备regression标签的用例才是关键用例
--noncritical not_readly 指定 不具备not_ready标签的用例是关键用例,其余用例都不是关键用例
--critical ok* --noncritical tbd* 指定 具备以ok开头的标签 且没有以tbd开头的标签的用例都是关键用例,其余用例都不是关键用例
一般咱们能够在关键用例中打上标签,好比basic表示是关键用例。
项目自动化现状:
实际的自动化项目中,不能只是测试开发者作
应是QA+ 测试开发一块儿
用例开发人员:是没有开发经验的QA,用例中使用复杂的流程会致使开发难度大大增长
但愿测试库的开发人员尽可能提供高抽象层级的关键字
不少团队,主要用python而不是RF开发关键字
须要锻炼python开发测试库的能力