Gauge安装
(1) 修改文件:/etc/yum.repos.d/gauge-stable.repo
[gauge-stable]
name=gauge-stable
baseurl=http://dl.bintray.com/gauge/gauge-rpm/gauge-stable
gpgcheck=0
enabled=1
(2) sudo yum install gauge
(3) 安装ruby插件(gauge_setup):A: ~/.gauge/config B: 生成了'html-report'的插件;
(4) 安装语言:gauge --install java gauge --install ruby gauge --install spectacle gauge --install python
(5) 直接运行gauge –init java 然后运行 gauge spec 查看是否正常;
备注:如果中间抛出Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/common/base/Predicate : Unsupported major.minor version 52:定位是jdk版本问题,需要变更JDK版本;Java默认的配置文件:~/.gauge/plugins/java/0.6.3/skel/env/java.properties
(6) Gauge其他插件: gauge install screenshot html-report 等
Spec编写语法
参考链接
Spec #
场景 ##
Steps *
step中的具体实现: zip实现同步遍历多个list, get_column_values_with_name获取表中列数据,如:
* Get segemented and tag word with query "亚投行意向创始成员国确定为57个" using BosonNLP
|space_mode |oov_level|t2s |special_char_conv|
|--|-----------|--|-----------|
|0 |3 |0 |0 |
|1 |3 |0 |0 |
|0 |1 |0 |0 |
|0 |3 |1 |0 |
|0 |3 |0 |1 |
step实现如下:
@step("Get segemented and tag word with query <query> using BosonNLP <table>")
def seg_tag(query,table):
query_set = []
query_set.append(query)
for space_mode,oov_level,t2s,special_char_convin zip(table.get_column_values_with_name("space_mode"),table.get_column_values_with_name("oov_level"),table.get_column_values_with_name("t2s"),table.get_column_values_with_name("special_char_conv")):
result = nlp.tag(query_set,space_mode,oov_level,t2s,special_char_conv)
print(result)
Case的执行方式
执行specs文件夹下的specs.spec文件:gauge specs/specs.spec
执行多个文件夹下的所有文件:gauge specs-dir1/ specs-dir2/
执行多个文件夹下的指定文件:gauge specs-dir1/example.spec specs-dir2/example2.spec
执行一个特定的Scenario:gauge specs/example.spec:16<br>数字代表该secnaior所在的行,从0开始
执行多个特定的Scenario:gauge specs-dir1/example.spec:16 specs-dir2/example.spec:18
执行的过程中输出日志:gauge --verbose specs
通过Tags执行
通过单独的Tag执行:gauge --tag admin specs带有admin 的所有的Specification或Scenario都会被执行
通过多个Tag执行:gauge --tag "login,admin" specs只有同时有login和admin Tag的Specification或者Scenario才会被执行
执行含有空格的Tag:gauge --tag "user login" specs
Tag支持与、或、非运算
!TagA: 执行不含有TagA的Specification或Scenario
TagA & !TagB: 执行含有TagA但不含TagB的Specification或Scenario
(TagA & TagB) | TagC: 执行同时含有TagA和TagB或者含有TagC的Specification或Scenario
(TagA | TagB) & TagC: 执行同时含有TagA和TagC或者TagB和TagC的Specification或Scenario
关于tags的执行的几个示例:
!TagA: 执行不含有TagA的Specification或Scenario
TagA & TagB: 执行同时含有TagA和TagB的Specification或Scenario
TagA & !TagB: 执行含有TagA但不含TagB的Specification或Scenario
TagA | TagB: 执行含有TagA或TagB的Specification或Scenario
(TagA & TagB) | TagC: 执行同时含有TagA和TagB或者含有TagC的Specification或Scenario
!(TagA & TagB) | TagC: 执行同时不含有TagA和TagB的或者含有TagC的Specification或Scenario
(TagA | TagB) & TagC: 执行同时含有TagA和TagC或者TagB和TagC的Specification或Scenario
gauge几个不同层级代码组织
Specifications (spec) : # 开头 可以包含多个测试场景, 可通过 Tags进行标记
Scenario: ## 开头 spec中单一的工作流, 包含一个或多个step, 可通过tags进行标记
Step: * 开头 每个step对应一段代码实现 step可以包含别名alias ,具体实现如:java中使用{} python使用[]@step(["Create a user <user name>", "Create another user <user name>"])
Context Steps(每个场景开始执行前: 数据准备及其他相关资源初始化)
Tear Down Steps(每个场景执行完成后:资源回收及数据恢复)
比较普通的step
Guage常用插件
gauge install json-report
gauge install xml-report
gauge install flash
gauge install screenshot
gauge install html-report
网友评论