在实际项目中,随着项目的进行,一个测试工程可能由多个feature文件组成,并且每个feature文件中可能也是由多个scenario组成。默认情况下,每次运行是运行所有feature中的所有scenario。这样可能导致正常情况下运行一次测试脚本,需要非常长的时间来等待测试结果。
但是实际过程中,测试用例是有优先级等区分的。比如smokeTest、regressionTest等。或者有时候会有特别小部分的用例,比如等级是critical,这些用例需要长时间运行来监测系统是否没有白页或者页面404等现象。
所以我们必须区分开所有的scenario,可以使我们在启动测试脚本时,可以根据我们需要来运行哪些模块的scenaro。这时我们可以使用Tags
上面的脚本中,Feature的@Search、@smoke是自动被其下的Scenario继承。
并且Feature中的每个Scenario可以自己定义专属自己的tag
如Scenario: 百度搜索selenium ,该场景目前有三个tag: @Search、@smoke、@BaiduSearch
但是实际过程中,测试用例是有优先级等区分的。比如smokeTest、regressionTest等。或者有时候会有特别小部分的用例,比如等级是critical,这些用例需要长时间运行来监测系统是否没有白页或者页面404等现象。
所以我们必须区分开所有的scenario,可以使我们在启动测试脚本时,可以根据我们需要来运行哪些模块的scenaro。这时我们可以使用Tags
在Cucumber里Tag是直接在Feature、Scenari或Scenario Outline关键字前给feature或scenario添加任意数量的前缀为@的tags,多个tag用空格来分隔。如:
@Search @smoke
Feature: 百度搜索
打开百度进行搜索
@BaiduSearch
Scenario: 百度搜索selenium
Given Go to baidu home
When I find baidu logo
And Type the search text "selenium"
And Click the submit
Then Wait the query result
@GoogleSearch
Scenario: 谷歌搜索selenium
Given Go to google home
When I find google logo
And Type the search text "selenium"
And Click the submit
Then Wait the query result
上面的脚本中,Feature的@Search、@smoke是自动被其下的Scenario继承。
并且Feature中的每个Scenario可以自己定义专属自己的tag
如Scenario: 百度搜索selenium ,该场景目前有三个tag: @Search、@smoke、@BaiduSearch