web自动化测试框架-03 介绍标签,背景,场景,场景大纲

系列内容

备注:配合免费视频教程,获取更佳的学习效果!课程链接: ke.qq.com/course/2815…

主要内容

  • 标签
  • 背景
  • 场景
  • 场景大纲

配合免费视频教程,获取更佳的学习效果!课程链接:

ke.qq.com/course/2815…

标签

通过为不同的feature或者场景添加标签,帮助我们为不同的测试用例归类,例如,可以让我们运行某些指定标签下的测试用例。

我们可以在 Feature Scenario Scenario Outline Example 关键字上面添加标签。

标签格式为@xxxx,多个标签之间以空格隔开。具体使用会在下面介绍样例中体现。

feature文件包含三种类型的场景,分别为:背景、场景、场景大纲,下面我们逐一说明。

背景(Background)

背景是三种场景类型中的一种,与我们在写测试用例中的前提条件类似,都是定义了我们操作其它场景的前置运行步骤。

背景的英文关键字为 Background,标签不能添加到背景上,而且一个feature文件中最多只能有一个背景。背景在整个feature文件中的运行顺序为:每个场景运行之前都会运行背景中定义的操作步骤。如下为背景的样例:

  Background: 用户登录
    Given 导航到用户登录页面
    When 用户名输入"testuser3"
    And 密码输入"123456"
    And 登录系统并显示用户名"testuser3"
复制代码

场景(Scenario)

场景与我们熟悉的测试用例中的场景一样,主要描述我们某个运行场景的操作步骤。

场景的英文关键字为Scenario,我们可以为场景添加标签。一个feature文件中可以定义多个场景。如下为场景的样例:

@smoke
Feature: 话题相关操作

  @topic @post
  Scenario: 用户登录并发布一个话题
    Given 导航到用户登录页面
    When 用户名输入"testuser3"
    When 密码输入"123456"
    Then 登录系统并显示用户名"testuser3"
    Then 打开发布话题按钮
    When 选择板块"分享"
    Then 输入标题"node.js是全栈工程师首选语言"
    Then 输入正文"node.js能够帮助我们快速实现各种功能!"
    Then 点击提交,"成功"校验点"node.jss是全栈工程师首选语言"
复制代码

场景大纲(Scenario Outline)

场景大纲主要是在场景的基础上添加了数据驱动,可以让场景根据不同的数据执行场景。举个例子:在测试登录时,需要测试不同的场景,比如登陆成功,用户名不存在登录失败,密码不正确登录失败等。场景大纲就是为了解决这种需要诞生的。

场景大纲的英文关键字为Scenario Outline,使用场景大纲的时候必须跟Example 配合使用,Example 中定义了不同的数据驱动,场景大纲运行时会依次来取其中数据内容 。如下:

@login
Scenario Outline: 用户名密码登录01
    Given 导航到用户登录页面
    When 用户名输入"<username>"
    When 密码输入"<password>"
    When 点击登录按钮
    Then 应该登录"<status>",校验点为"<checkpoint>"
    Examples: 
      | username   | password | status | checkpoint |
      | testuser3  | 123456   | 成功     | testuser3  |
      |            | 123456   | 失败     | 信息不完整。     |
      | 123456     | 123456   | 失败     | 用户名或密码错误   |
      | P@@@$$w0rd | 123456   | 失败     | 用户名或密码错误   |
    @performance
    Examples: 
      | username   | password | status | checkpoint |
      | testuser3  | 123456   | 成功     | testuser3  |
      | testuser3  | 123456   | 成功     | testuser3  |
      | testuser3  | 123456   | 成功     | testuser3  |
      | testuser3  | 123456   | 成功     | testuser3  |
复制代码

如上所示:我们定义了一个用户登录的场景,在 Example 中定义了不同的数据,默认场景执行时候会依次读取数据进行自动化操作。上例中我们定义了两个 Example 共8组数据,当执行这个场景大纲时,程序会执行8次,自上而下依次取每行数据。

一个场景大纲中根据不同需要可以添加多个 Example 每个 Example 根据不同使用场景也可以添加不同标签。

一个feature文件中可以添加多个场景大纲。

小结

上面介绍了 背景, 场景,场景大纲之间的一些区别,下面通过一个实例来指导如何在工作中书写feature文件。

以常用的社区发帖为例,发帖操作前提是我们用户登录到系统,所以用户登录操作可以写在 Background 中,发帖功能又有不同的场景,可以定义为 Scenario Outline ,如下:


@smoke
Feature: 用户发帖
发帖不同场景

  Background: 用户登录
    Given 导航到用户登录页面
    When 用户名输入"testuser3"
    And 密码输入"123456"
    And 登录系统并显示用户名"testuser3"

  Scenario Outline: 发布话题
    Then 打开发布话题按钮
    When 选择板块"<tab>"
    Then 输入标题"<title>"
    Then 输入正文"<content>"
    Then 点击提交,"<status>"校验点"<checkpoint>"
    Examples: 
      | tab | title          | content                      | status  | checkpoint     |
      | 分享  | node.js        | node.js is the best language | fail    | 标题字数太多或太少。     |
      |     | i love node.js | node.js is the best language | fail    | 必须选择一个版块!      |
      | 问答  | i love node.js |                              | fail    | 内容不可为空         |
      | 分享  | i love node.js | node.js is the best language | success | i love node.js |
复制代码

要更好的了解这些语法,推荐大家使用CukeTest cuketest.com/ 可视化界面编辑feature文件,有智能提示,确保生成格式正确的feature文件。另外,CukeTest可以快速帮助我们切换关键字语言,例如上面场景都是用英文关键字,可以一键转换成中文。并且它支持由feature文件生成自动化代码。


获取更多信息,可以关注公众号,也可以加QQ群:707467292 进行node.js自动化相关技术交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值