使用RobotFramework编写BDD代码

news2024/9/21 16:26:47

背景

行为驱动开发(Behavior Driven Development)即BDD,是一种敏捷开发方法,通常应用在自动化测试中,或者也可称为行为驱动测试。通过使用自然描述语言确定自动化脚本,通过这种方式,能够大大促进团队之间的沟通。实现BDD的工具有RobotFramework、Cucumber、JBehave、RBehave,以及桌面客户端CukeTest。

BDD对TDD的理念进行了扩展,在TDD中侧重点偏向开发,通过测试用例来规范约束开发者编写出质量更高、bug更少的代码。

BDD更加侧重设计,其要求在设计测试用例的时候对系统进行定义,倡导使用通用的语言将系统的行为描述出来,将系统设计和测试用例结合起来,从而以此为驱动进行开发工作。

BDD的通用语言是一种近乎自然语言的描述软件的形式。传统的开发模式中,客户很难从技术层面理解问题,开发人员很难从业务需求考虑问题,基于这种通用语言形式可以尽可能的避免客户和开发者在沟通上的障碍,实现客户和开发者同时定义系统的需求

BDD避免了因为理解需求不充分而带来的不必必要的工作量。

BDD描述的行为就像一个个的故事(Story),系统业务专家、开发者、测试人员一起合作,分析软件的需求,然后将这些需求写成一个个的故事。开发者负责填充这些故事的内容,测试者负责检验这些故事的结果。通常,会使用一个故事的模板来对故事进行描述

用例格式如下:

Given (setup)
A specified state of a system

When (trigger)
An action or event occurs

Then (verification)
The state of the system has changed or an output has been produced
​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

代码

封装的自定义关键字, 放在Resource文件keywords_BDD中

*** Settings ***
Library           Selenium2Library

*** Keywords ***
I have url open
    [Arguments]    ${url}
    Open Browser    ${url}

I input username
    [Arguments]    ${username}
    Input Text    id=emp_no    ${username}

I input password
    [Arguments]    ${password}
    Input Password    id=password    ${password}

I click login
    Click Button    css=#form_login > div:nth-child(4) > div > input

I close browser
    Close Browser

登陆功能的测试用例

*** Settings ***
Resource          keywords_BDD.txt

*** Test Cases ***
case1
    Given I have url open    http://localhost:8888/smeoa/login
    And I input username    admin
    And I input password    admin
    When I click login
    Then Page Should Contain    退出
    I close browser

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微调Fine tune

网络架构 一个神经网络一般可以分为两块 特征抽取将原始像素变成容易线性分割的特征线性分类器来做分类 微调:使用之前已经训练好的特征抽取模块来直接使用到现有模型上,而对于线性分类器由于标号可能发生改变而不能直接使用 训练 是一个目标数据集上…

RS232串口_笔记

这里写目录标题 1、RS232串口理论起始位数据位校验位LSB & MSB示波器查看数据信号对应连接方式 1、RS232串口理论 UART(通用异步收发传输) 是一种通信协议,而 RS232 (串行通信接口)是种物理接口标准。UART 是一种用于在计算机和外部设备之间传输数据的协议&…

Mac电脑版程序创建工具 VMware InstallBuilder Enterprise mac最新

VMware InstallBuilder Enterprise 是一款功能强大、操作简单、跨平台支持的软件安装和部署工具,可以让开发者更加高效地创建和部署软件,并提供了丰富的功能和工具,适用于不同的用户需求和场景。 内置调试器 轻松排除应用程序安装过程中的故…

C语言--每日选择题--Day31

第一题 1. 下面程序 i 的值为() int main() {int i 10;int j 0;if (j 0)i; elsei--; return 0; } A:11 B:9 答案及解析 B if语句中的条件判断为赋值语句的时候,因为赋值语句的返回值是右操作数; …

NIFI源码编译部署在服务器CentOS环境中

一、下载Apache NiFi源码: Apache NiFi官网地址,文档 Apache NiFi源码GitHub地址 二、部署nifi 2.1进入opt目录,并创建software、module [rootlocalhost /]# cd /opt/ [rootlocalhost opt]# ls containerd [rootlocalhost opt]# mkdir s…

vscode-使用vscode编译和代码修改 keil工程

Visual Studio Code必要拓展(插件)安装 1. Keil Assistant 在拓展搜索栏中输入Keil,找到 Keil Assistant 点击安装下载

小航助学题库蓝桥杯题库python选拔赛(21年3月)(含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSDN博客 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号)_程序猿下山的博客-CSD…

智能遥测终端机RTU的注意事项

智能遥测终端机RTU是一种用于实时监测和控制现场数据的设备,可以广泛应用于水利、水文、电力、煤炭等各个领域。但是在使用智能遥测终端机RTU时,也需要注意一些事项,以确保终端的正常使用效果。 ◆注意安装位置   应安装在稳定、通风的室内…

C51--DHT11温湿度传感器

DHT11温湿度传感器 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。 特点: 相对温度和湿度测量全部校准,数字输出长期稳定性超长的信号输出距离:20米超低耗能:休眠4引脚安装:可以买封装好的…

Dynamsoft Barcode Reader教程:如何使用Dynamsoft Java条形码阅读器扫描多个条形码

目前有许多开源和商业条形码SDK,但只有少数可以通过扫描一次来识别多个条形码。当您在Google中搜索条形码SDK或Java条形码SDK时,您会发现Dynamsoft Barcode Reader SDK始终位于搜索结果的前5位。在本文中,我将分享如何使用Dynamsoft Java条码…

内模原理与控制

基于模型的控制方法: 把外部作用信号的动力学模型植入控制器来构成高精度反馈控制系统的设计原理。 内模原理(IMP)指的是,想要实现对R(s)的无差跟踪,系统的反馈回路中需要包含一个与外部输入R(s)相同的动力学模型。通…

如何使用Selenium进行Web自动化测试?一文6个步骤轻松玩转!

概述: Web自动化测试是现代软件开发过程中至关重要的一环。Selenium是一个强大的自动化测试工具,可以模拟用户在Web浏览器中的操作,实现自动化的测试流程。本文将介绍如何使用Selenium进行Web自动化测试,并附带代码示例&#xff…

TZOJ 1375 偶数求和

答案&#xff1a; #include <stdio.h> int main() {int n 0, m 0, j 0, s 0, count1 0,k0;int arr[101] { 0 }; //选择数组是用来控制打印格式while (scanf("%d%d", &n, &m) 2 && (n < 100 && n>0)) //多组数据输入…

docker (镜像分层、阿里云镜像推送/拉去)-day02

一、镜像概念 Docker 镜像是 Docker 容器的基础&#xff0c;它提供了一种可重复使用的、跨平台的部署方式&#xff0c;使得应用程序的部署和运行变得简单和高效。 把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),打包好…

宝塔环境备份到西部数码FSS

1、登陆宝塔面板-软件商店-第三方应用&#xff0c; 搜索ftp&#xff1a;找到FTP存储空间&#xff0c;点击安装 2、在软件商城-已安装&#xff0c;找到ftp存储空间&#xff0c;点击进入选项设置. 3、按照下图填写fss相关参数.这些信息可以在fss详情中查看.目录路径如果没有请先在…

U-GAT-IT 使用指南:人脸动漫风格化

U-GAT-IT 使用指南 网络结构优化目标 论文地址&#xff1a;https://arxiv.org/pdf/1907.10830.pdf 项目代码&#xff1a;https://github.com/taki0112/UGATIT U-GAT-IT 和 Pix2Pix 的区别&#xff1a; U-GAT-IT&#xff1a;主要应用于图像风格转换、图像翻译和图像增强等任务…

ROS vscode使用基本配置

1、创建ros工作空间 2、启动 vscode 3、vscode 中编译 ros ctrl shift B 调用编译&#xff0c;选择:catkin_make:build 修改.vscode/tasks.json 文件 4、 创建 ROS 功能包 选定 src ---> create catkin package 依次设置包名、添加依赖 5、C 实现 在功能包的 src 下…

用最少数量的箭引爆气球[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组points&#xff0c;其中points[i] [xstart, xend]表示水平直径在xstart和xend之间的气球。你不知道气球的确切y坐标。一支弓箭可以沿着x轴从不同点完全垂直…

Microsoft 365 for Mac:提升您的办公效率的终极选择

在现代工作环境中&#xff0c;高效的办公软件是提高工作效率和团队合作的关键。Microsoft 365 for Mac&#xff08;前身为Office 365&#xff09;是微软为Mac操作系统推出的一套全面的办公软件解决方案&#xff0c;为用户提供了强大的工具和功能&#xff0c;帮助您在任何地方都…

OData服务的开发-SAP Gateway Service Builder Projects

文章目录 概述操作 概述 有多种方法可以开发 OData 服务。对于经典的 ABAP 开发&#xff0c;引入了 SAP Gateway Service Builder。但是&#xff0c;在 SAP S/4HANA 1909 中引入的 ABAP RESTful 应用程序编程模型。 两个模型可以并行使用。但是&#xff0c;建议使用 ABAP RES…