RF之目录结构、执行参数、用例标签 -6
自动化项目的目录结构:
建议的目录结构。。。
以robot --pythonpath . tc命令执行tc用例下面所有的用例
builtin库里面的Run Keywords方法实现初始化
结构优化:- 合并重复的初始化和清除操作
- 去掉多余的管理员登录操作
- 合理重组目录结构
RF用例的执行:
robot framework的命令格式: robot [options] data_sources
* 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开发测试库的能力
RF之目录结构、执行参数、用例标签 -6的更多相关文章
- Robotframework(2):创建RF第一条可执行的用例
转载:http://www.cnblogs.com/CCGGAAG/p/7800323.html 上篇,我们说了如何配置基础的环境,配置好了python2.wxPython .robot framew ...
- Discuz!X3解读之类引入机制及目录结构
实例: - /source/class/table/table_forum_faq.php - /source/class/model/model_forum_post.php - /source/p ...
- Android开发第一讲之目录结构和程序的执行流程
1.如何在eclipse当中,修改字体 下面的这种办法,可以更改xml的字体 窗口--首选项--常规--外观--颜色和字体--基本--文本字体--编辑Window --> Preferences ...
- 软件目录结构规范(以python为例)
为什么要设计好目录结构 "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人 ...
- linux目录结构详解(以suse linux 10为例)
一.文件系统结构 位于Linux系统的最顶端即根目录是/.Linux的文件系统的入口就是/,所有的目录.文件.设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者. 它之下的子目录有: ...
- codeblocks的c程序目录结构与执行过程
执行过程 编译 形成 .o .obj 连接 形成.exe文件 执行 目录结构 主程序main.c #include <stdio.h> #include <stdlib.h> ...
- Python1_Python的目录结构、执行顺序、__name__ == __main__
Python执行顺序 python属于脚本语言,不像编译型的语言那样先将程序编译成二进制后再运行,而是动态地逐行解释运行: 也就是从脚本的第一行开始运行,没有统一的入口. python会从文件的第一行 ...
- Mac idea 执行testng用例,提示%MODULE_WORKING_DIR%目录不存在解决办法
idea 下载git代码 执行testng用例,报错: 下午4:47 Error running 'Test.apkStart': Cannot start process, the working ...
- Linux之目录结构解析
/ /bin 存放[二进制可执行命令]目录,与usr/bin相比,它是系统性的.主要放置一些系统的必备执行档.例如:cat.cp.chmod df.dmesg.gzip.kill.ls. mkd ...
随机推荐
- 如何利用wx.login方法获取openid和sessionKey
1, wx.login(Object object) 调用接口获取登录凭证(code).通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key) ...
- 连接(JOIN)
join 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段. INNER JOIN 从多个表中返回满足 JOIN 条件的所有行. INNER JOIN:如果表中有至少一个匹配,则返回行 L ...
- netty(六) buffer 源码分析
问题 : netty的 ByteBuff 和传统的ByteBuff的区别是什么? HeapByteBuf 和 DirectByteBuf 的区别 ? HeapByteBuf : 使用堆内存,缺点 ,s ...
- dropna fillna
# NaN 浮点类型 np.nan+1 =>nan Python type(None) // NoneType类型 不能参与运算 import pandas as pd from pand ...
- SpringCloud全家桶学习之概览(一)
一.概览 根据百度百科的描述,微服务架构是一项在云中部署应用和服务的新技术.而SpringCloud是微服务架构思想的一个具体实现,它为开发人员提供了构建分布式系统中一些常见模式的工具(服务注册与发现 ...
- SQLite3约束介绍
SQLite 约束 约束是在表的数据列上强制执行的规则.这些是用来限制可以插入到表中的数据类型.这确保了数据库中数据的准确性和可靠性. 约束可以是列级或表级.列级约束仅适用于列,表级约束被应用到整个表 ...
- css 属性值 calc (目前只了解部分)
移动端页面,有如下图的需求: 实现效果: 实现 css 代码: .list {/*父级*/ border: 1px solid #E9EAEA; border-radius: 2px; backgro ...
- PHP中数字转为百分位,千分位,万分位。。。
今天做项目中,需要将文章点击量显示在页面中,需求中给的是多少多少万,虽然不是什么难事,但做程序员这么久了,需要考虑的不再是简单的实现,而且有效率和快捷, 虽然PHP自带的函数有number_forma ...
- RobotFramework+Selenium2环境搭建与入门实例
一.安装包 1.Python(推荐使用ActivePython,这个版本PATH已经配好了,也安了一些像pip这样的包) ActivePython-2.7.2.5-win32-x86.msi 2.Wx ...
- ZOJ1006 Do the Untwist
简单模拟~ #include<bits/stdc++.h> using namespace std; ; int a[maxn]; unordered_map<char,int> ...