目录

回顾

在上一节中,我介绍了cucumber一些基本的语法内容,如果你还没有进行相关的了解或者环境的配置,你可以点击这里来进行了解一下

在本节中,我会对cucumber的一些常用的命令来进行介绍

基本命令的执行

先回顾一下我们之前在执行cucumber用例的时候,运行的命令是 cucumber features/hello_cucumber.feature,因为之前只是涉及到一个文件而已,一个文件中也只有一个用例,所以还是十分的简单的。我们看看下面的一些常用的执行方式。在介绍另外的执行方式之前,我们先写几个文件,让我们的用例更充实一些,以至于看起来更真实一些。

目录如下:

login.feature:

Feature: Login
Login system should work fine @LoginWithRightUsernameAndRightPassword
Scenario: Login with right username and right password
Given I open the login page
When I set username with a right username
And I set password with a right password
And I click the login button
Then I see login success @LoginWithRightUsernameAndErrorPassword
Scenario: Login with right username and error password
Given I open the login page
When I set username with a right username
And I set password with a error password
And I click the login button
Then I see login fail

register.feature:

Feature: Register
Register system should work fine @Register
Scenario: Register
Given I open the Register page
When I fill textboxs on the Register page
| id | value |
| username | fan |
| password | 123 |
And I click the register button
Then I see register success

common_step.rb:

Given /^I launch the browser$/ do
puts "launch browser"
end

login.rb:

Given /^I open the login page$/ do
step "I launch the browser"
step "I go to login page"
end When /^I set username with a right username$/ do
puts "set a right username"
end When /^I set password with a (.*) password/ do |password|
puts "set a #{password} password"
end When /^I click the login button$/ do
puts "click login button"
end Then /^I see login success$/ do
puts "login success"
end Given /^I go to login page$/ do
puts "go to login page"
end Then /^I see login fail$/ do
puts "login fail"
end

register.rb:

Given /^I open the Register page$/ do
steps %Q{
Given I launch the browser
And I go to Register page
}
end Given /^I go to Register page$/ do
puts "go to Register page"
end When /^I fill textboxs on the Register page$/ do |table|
table.hashes.each do |item|
puts "set #{item["id"]} to #{item["value"]}"
end
end When /^I click the register button$/ do
puts "click register button"
end Then /^I see register success$/ do
puts "register success"
end

在上面我基本上用到了上一节所讲述的所有的知识,知识在每个feature的Scenario中,添加了一个以@开头的tag,这个只是给了一个Scenario一个标记,在命令中会用到。

在整个工程含有了2个feature文件,每个文件都含有对应的step实现,而且他们共有的步骤也进行了一个提取,以至于更方便的去管理它。现在看看一些关于如何按照自己的需求去执行这些用例的命令行。

(1)执行一个文件下面所有的用例

cucumber features/login.feature

执行结果如下:

通过上图可以看出,上面的命令执行了login.feature下面所有的Scenario。

(2)执行所有的用例

cucumber features/.

执行结果如图:

通过上图可以看出,3个用例都被执行了。

(3)执行一个特定的用例

cucumber -t @LoginWithRightUsernameAndErrorPassword   
或者
cucumber --tag @LoginWithRightUsernameAndErrorPassword

结果如下:

通过-t参数可以发现我们执行了一个单独的用例。

(4)执行用例的某一行所在的用例

cucumber -l 8 features/login.feature
或者
cucumber --line 8 features/login.feature
或者
cucumber features/login.feature:8

执行结果如下:

第8行所在的用例是LoginWithRightUsernameAndRightPassword这一个,所以结果和我们预期的一样,这个用例被执行了

cucumber中执行的命令大致会用到这一些,其他的一些执行命令你可以通过cucumber --help去进行了解

关于日志的生成

在测试中,一般用例执行完了后需要测试报告,cucumber自身也提供了这样的功能。在cucumber中测试报告提供了好几种形式,比如json,html,junit等等,看看这几种测试报告生成的结果是什么样的

(1) Json

命令如下:

cucumber features/login.feature -f json -o login.out.json

前面的一段命令和之前的运行命令是一样的,后面 -f 参数代表了格式(format)是json, -o参数代表了生成输出文件为 login.out.json

看看生成的json文件是如何的:

这里的json文件太长并没有完整的截取,查看json文件的时候感觉对于报告这种东西来说并不太清晰,但是json十分的好用来分析,如果想生成比较清晰的结果最好是生成html,看看html是如何的被生成的:

(2)html

命令如下:

cucumber features/login.feature -f html -o login.out.html

通过命令发现只用把json换成html就行了,看看生成的html是如何的:

绿色就代表这个用例是通过的,比起刚刚的json来说,这个就清晰明了多了。

(3)junit

junit提供了xml格式的报告,和刚刚一样只需要改下参数就行:

cucumber features/login.feature -f junit -o login.out

运行了命令后,在HelloWorld文件下面重新生成了一个login.out的文件夹,里面包含了一个xml文件,是这次运行的结果,它能直接的使用到junit+ant这种架构下面去。

其他的格式在这里就不讲解了,需要大家去探索下。

Cucumber(3)——命令以及日志的更多相关文章

  1. WinDbg常用命令系列---日志操作相关命令log*

    .logopen (Open Log File) .logopen命令将事件和命令的副本从调试器命令窗口发送到新的日志文件. .logopen [Options] [FileName] .logope ...

  2. CMDB02/ 单例模式、资产采集参考命令、日志处理

    CMDB02/单例模式.资产采集参考命令.日志处理 目录 CMDB02/单例模式.资产采集参考命令.日志处理 1. 单例模式 1.1 多例模式 1.2 单例模式 1.2.1 单例模式/错误 1.2.2 ...

  3. 菜鸟学Linux命令:tail命令 查看日志

    tail 命令用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理. tail命令常用来查看日志文件.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filenam ...

  4. 主机管理+堡垒机系统开发:strace命令及日志解析(五)

    一.strace命令简介 测试命令截图 第一个窗口执行命令如下 [root@elk ~]# w 16:51:56 up 3 days, 6:01, 3 users, load average: 0.0 ...

  5. Windows使用tail命令跟踪日志

    我们知道如果是Unix/Linux环境可以直接使用 tail -f xxx.log即可. 但是Windows并没有自带这个命令,不过从网上可以找到tail.zip 实测可以将其解压放在C:\Windo ...

  6. crontab命令行和日志查看

    1.基本命令行模式 注意:非root用户 systemctl restart crond 失效,请使用最底层的驱动重启 2.crontab日志 cron日志保存在系统目录/var/log/cron 命 ...

  7. awk命令分析日志的简单笔记

    awk是一个文本分析工具,可以用来进行流量日志分析 之前无意中看到了这个命令,简单记一下笔记 ,在打线下的时候可能会有用 awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gaw ...

  8. Mysql: mysqlbinlog命令查看日志文件

    想查看mysql的binlog文件,但是裸的binlog文件是无法直视的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysq ...

  9. nginx中有关命令和日志切割,配置文件加载的详细阐述

    一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...

随机推荐

  1. Mysql中的三类锁,你知道吗?

    导读 正所谓有人(锁)的地方就有江湖(事务),人在江湖飘,怎能一无所知? 今天来细说一下Mysql中的三类锁,分别是全局锁.表级锁.行级锁. 文章首发于作者公众号[码猿技术专栏],原创不易,喜欢的点个 ...

  2. arcgis连接oracle发布服务,提示数据未注册到服务器,手动注册服务器失败

    arcgis连接oracle数据库发布服务时候,分析之后提示:数据未注册到服务器上. 手动注册之后提示:数据客户端没有正确配置.实际上数据库客户端已经安装完成也可以使用. 设置 PATH 环境变量(仅 ...

  3. Lack of free swap space on Zabbix server

    在模板(Template)里找到Linux OS模板,修改触发器 配置>模板>Template OS Linux>触发器 找到swap关键字 修改 {Template OS Linu ...

  4. .Net平台技术栈?不止于此

    首先援引一名工友几年前的文章:http://csharper.blog.51cto.com/3052247/1330022,结合当前微软技术领域及平台工具现状,文章有增改. .NET是个很大.很宽.很 ...

  5. Cplex教育版申请

    任何人:直接在公众号"毒书 彼记" ,“资源下载” 板块下载: 如果你的学校没有购买cplex软件没那么,你就不可以下载教育版的cplex软件,如过下载免费板,它的功能会有一些限制 ...

  6. ConcurrentHashMap红黑树的实现

    红黑树 红黑树是一种特殊的二叉树,主要用它存储有序的数据,提供高效的数据检索,时间复杂度为O(lgn),每个节点都有一个标识位表示颜色,红色或黑色,有如下5种特性:1.每个节点要么红色,要么是黑色:2 ...

  7. 使用内部枚举类作为外部类的参数的Mybatis的参数该如何判断

    新写了一个接口,期望根据不同的参数来给数据库中不同的字段进行传值.这里使用了内部静态枚举类的方式进行传值,在写mybatis动态sql时,如果是普通对象,一般使用,那么使用枚举类,如何判断枚举类的值呢 ...

  8. 手工注入——MySQL手工注入实战和分析

    今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场.话不多说,咱们直接开始. 第一步,判断注入点 通过 ' 和构造 and 1=1 和 and 1=2 ...

  9. 【PHP源码】PHP 函数调用

    title: [PHP 源码]PHP 函数调用 date: 2020-03-30 23:25:00 updated: 2020-04-04 19:57:00 tags: PHP 源码 想法 我以前对于 ...

  10. Python学习笔记:函数详解(下)

    本文介绍:高阶函数,嵌套函数,以及由前面两个组成的装饰器 一.高阶函数:以下两种情况都是高阶函数   1.将函数名当成参数传递给另外一个函数(作用:不修改被传递函数源代码就可以添加新功能): impo ...