RobotFramework之如何使用数据驱动(十二)

学习目录

引言

数据驱动是什么?

非驱动方式测试案例

通过添加Template模板的方式,实现数据驱动

将参数放在变量文件中,实现数据驱动

引言

大家平时在写接口或者UI自动化用例的时候,是否遇到这种情况: 写了很多条用例,发现除了个别参数不同,其他的自动化代码完全一样,那能否提取出这些测试代码作为公共代码,并将不同的参数循环应用到公共代码中?

数据驱动是什么?

数据驱动,通常将测试数据与功能函数分离,测试数据一般存放在json文件、Excel 文件、txt文件、yaml文件或者python文件或者mysql数据库等数据源中。在自动化测试运行时,读取数据源中的数据,把数据作为参数传递到功能函数中运行多次。

数据驱动的优点:减少重复代码,提升维护效率。

非驱动方式测试案例

下面我们一起学习下使用RobotFramework(以下简称RF)框架来实现数据驱动的方式

在前面的文章中我们讲过使用RequestsLibrary实现了http接口的自动化用例,先看下面的几个测试用例:

以上3个测试案例,都是通过Get On Session关键字发送http的Get请求,通过观察发现,只有http请求的url不同,其他测试代码完全一样,此时我们可以提取相同的内容变成公用关键字。

1 通过添加Template模版的方式,改造为数据驱动

按照之前我们介绍的,创建关键字有几种方式,可在测试套件创建keyword,也可以创建resource文件然后再创建keyword,我们还是选择创建resource的文件的这种方式。

1 创建resource文件,并创建http的get请求的关键字如下图(具体步骤可参考之前文章):

2 在测试套件引用该resource文件,并使用创建好的关键字,此时3个用例被改造如下:

3 测试用例中通过添加Template模版的方式,改造为数据驱动,每一行为一个参数

4 选中该条用例执行,查看测试报告:虽然是一条用例但同样被执行了三次

2 将参数放在变量文件中,实现数据驱动

1 在工程test目录新建config目录,新建一个python文件,将上面这些url参数作为一个list变量放在python文件,如下:

2 在测试套件中引用该变量文件

3 在测试用例中通过FOR循环的方式让关键字调用这些参数

4 执行用例,检查报告如下: 发现第二个参数的用例报错了,后面的参数没有执行

此时我们可以使用Run Keyword And Ignore Error,忽略掉报错继续执行

执行结果如下:3个参数都执行了,第2条报错

当然还有其他方法来实现参数和函数功能分离的数据驱动方式,大家可以在实际项目中多尝试,多练习。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 C# 程序中注入恶意 DLL

为什么 Windbg 附加到 C# 程序后,程序就处于中断状态了?它到底是如何实现的?其实简而言之就是线程的远程注入,这一篇就展开说一下。 实现原理 1. 基本思路 WinDbg 在附加进程的时候,会注入一个线程到 C# 进程 中&…

盘点60个Python各行各业管理系统源码Python爱好者不容错过

盘点60个Python各行各业管理系统源码Python爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 源码下载链接:https://pan.baidu.com/s/1VdAFp4P0mtWmsA158oC-aA?pwd8888 提取码:8888 项目名…

原来机械硬盘比内存慢10万倍

我们都知道机械硬盘的速度很慢,内存的速度很快,那么不同存储器之间的差距到底有多大呢? 我们先来看一幅图: CPU访问寄存器的时间是0.3纳秒,访问L1高速缓存的时间是1纳秒,访问L2高速缓存的时间是4纳秒… 秒…

Cmake学习

cmake大致 cmake_minimum_required(VERSION 3.0)project(test) #通过set自定义变量,通过${}取出 #set(SRC add.cpp main.cpp muti.cpp sub.cpp) #cmake搜索文件 宏定义PROJECT_SOURCE_DIR aux_source_directory(${PROJECT_SOURCE_DIR} SRC) #file(GLOB/GLOB_RECURSE…

Linux文件权限

R 代表可读 W 代表可写 X 代表可执行 文档类型有如下表示方法:   d - 目录,例如上表档名为『.gconf』的那一行; - - 文档,例如上表档名为『install.log』那一行; l - 链接档(link file); b …

带你快速掌握Linux最常用的命令(图文详解)- 最新版(面试笔试常考)

最常用的Linux指令(图文详解)- 最新版 ls:列出目录中的文件和子目录。(重点)cd:改变当前工作目录。绝对路径:相对路径 pwd:显示当前工作目录的路径。mkdir:创建一个新的目…

[Kettle] 字段处理

1.增加常量 常量是指在计算机程序运行过程中其值不能改变的量 常量可以是任何的数据类型,例如,圆周率"3.141159"、中国首都"北京"等都可以是常量 增加常量是指在数据中增加一个字段,并给字段设置一个固定的值 数据源…

java源码-工程讲解

1、 工程目录 源码工程目录讲解部分,讲解过程会让大家对后端源码工程有一个大致的了解,能让大家在此改造,就可以衍生出一些新的功能,需要对java技术深入了解,需要看后续java技术讲解部分 整个架构是一个spring-boot…

​软考-高级-系统架构设计师教程(清华第2版)【第16章 嵌入式系统架构设计理论与实践(P555~613)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第16章 嵌入式系统架构设计理论与实践(P555~613)-思维导图】 课本里章节里所有蓝色字体的思维导图

Redis 9 数据库

4 设置键的生存时间或过期时间 通过EXPIRE命令或者PEXPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(TimeToLive,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间…

Python的数据分析包Pandas?示例文章完成版来啦~

文章目录 前言一、Pandas简介二、Python Pandas的使用 总结 前言 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源…

【机器学习Python实战】logistic回归

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习python实战 欢迎订阅!后面的内容会越来越有意思~ ⭐内容说明:本专栏主要针对机器学习专栏的基础内容进行python的实现,部分…

机器学习第8天:SVM分类

文章目录 机器学习专栏 介绍 特征缩放 示例代码 硬间隔与软间隔分类 主要代码 代码解释 非线性SVM分类 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 作用:判别种类 原理:找出一个决策边界,判断数据所处区域来识别种类 简单…

Consistency Models 阅读笔记

Diffusion models需要多步迭代采样才能生成一张图片,这导致生成速度很慢。Consistency models的提出是为了加速生成过程。 Consistency models可以直接一步采样就生成图片,但是也允许进行多步采样来提高生成的质量。 Consistency models可以从预训练的扩…

单元测试实战(四)MyBatis-Plus 的测试

为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战(一)Controller 的测试 单元测试实战(二)Service 的测试 单元测试实战&am…

【电路笔记】-最大功率传输

最大功率传输 文章目录 最大功率传输1、概述2、最大功率传输定理 (MPTT)3、示例4、阻抗匹配5、总结 当工程师设计电子电路时,他们会跟踪许多不同的参数,但最重要的参数之一是功率。 在现代电路中,功率在多个阶段中不断变化,有时由…

最常用的结构体初始化方式

结构体最常用的初始化方式就是用memset把这块区域清0 注意不能这么写 STU stu[5]; stu (STU*)malloc(sizeof(stu)); 数组名不允许被赋值,它只是个表达式

AI Navigation导航系统_unity基础开发教程

AI Navigation导航系统 安装插件烘焙导航系统障碍物创建人物的AI导航动态障碍物 在unity编辑器中,有一个灰常好用的插件:Navigation。有了它1,你就可以实现人物自动走到你鼠标点击的位置,而且还会自动避开障碍物,下面就…

微信小程序会议OA首页-开发说明创建项目关于flex布局关于尺寸单位(rpx)关于WXS轮播图会议信息

目录 1. 创建项目 2. 关于flex布局 3. 关于尺寸单位(rpx) 4. 关于WXS 4. 轮播图 5. 会议信息 1. 创建项目 基于微信原生开发工具,稳定版 Stable Build (1.06.22010310) 创建项目前,请确定有小程序测试账号 使用向导创建一个…

【Linux】进程间通信 -- 共享内存

共享内存 共享内存是SystemV标准进程间通信的一种&#xff0c;该标准还有消息队列和信号量&#xff0c;但下文主要介绍共享内存&#xff0c;然后在谈一下信号量的内容。SystemV标准的进程间通信可以看做单机版的进程间通信。 // 1. log.hpp #pragma once#include <iostrea…