如何在robotframework基础上使用数据驱动测试
一.写在前面
robotframework是很好用的关键字驱动测试框架,但是在实际工作中也有些地方使用不便,比如在我们设计参数校验测试case时,往往只是想修改校验参数类型而不得不做大量复制粘贴操作,最终导致了一个测试case中存在大量的冗余代码,而且如果在后续的使用中一旦出现变动,测试case将不便维护。
针对此情况,想到了尝试在robotframework功能基础上封装了一个轻型框架,用来实现部分接口测试场景的数据驱动方式的自动化测试。
二.所需组件说明
1.python2.7
2.robotframework
3.依赖库
Library RequestsLibrary
Library Collections
Library OperatingSystem
Library Process
Library String
Library XML
Library HttpLibrary.HTTP
Library DiffLibraryLibrary
../CustomKeyword.py(自定义依赖库)等等
4.excel && txt
三.测试用例工程说明
test-xxx-xxx //测试case工程名
--→data //测试数据文件夹
---->api-test.txt //供测试框架获取数据
---->api-test.xls //方便tester进行case设计编辑
--→testcase //测试框架文件夹
---->xxxxxx-api.txt //接口测试框架
--→start.sh //启动j脚本
CustomKeywork.py //自定义关键字库
README.md //都知道
1.data文件夹中存放测试数据
2.testcase文件夹中存放测试用例实例,测试完成后的报告,启动脚本(其中txt文档为测试用例实例供robotframework调用,log.html,report.html,output.xml是测试报告,start.sh是启动脚本)
3.自定义测试库(一些测试用的函数)
data中存放的是具体接口的测试数据,可以使用excel对conf-api-test.xls进行配置也可以直接打开对应的txt进行编辑(注:最终工具执行测试时是读取txt文件,所以使用excel配置后需要用表格数据替换对应txt中的数据)
excel查看
不需要校验的内容使用?* 正则匹配掉
txt查看
其中数据分为四列
第一列:用例名称
第二列:用例执行开关(通过配置yes开启执行这条case,配置no不执行这条case)
第三列: 输入数据(接口请求调用的数据)
第四列:预期输出
四.架构工作流程
五.代码说明
1.图形化关键字图表说明
调用库以及设置全局变量的操作不变
2.自定义关键字说明
3.第三方关键字说明
变量赋值关键字
字符串拼接关键字
变量运算关键字
if条件判断关键字
continue关键字
断言失败继续执行关键字
正则匹配断言关键字
4.使用GET请求方式的区别
需要在请求调用之前,需要将unicode类型的输入数据转换成字典类型
六.对比
使用前
使用后
测试报告
七.后续
1.添加测试输出录制功能;
2.标准化测试数据格式,可以实现多工具兼容使用;
等等等等
如何在robotframework基础上使用数据驱动测试的更多相关文章
- 如何快速掌握DDT数据驱动测试?
1.前言 (网盗概念^-^)相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动.(网盗结束)当我们测试某个网站的登录功能时,我们往往会使用不同的用 ...
- RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)
在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的 ...
- GPT分区基础知识及如何在GPT分区上安装WIN7
大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...
- git---如何在远程某个分支的基础上新建分支
问题场景 技术主管让你去再某个git分支上新建一个分支去做你的项目,那么如何在原远程分支的基础上新建自己的分支呢? 解决方法 按照以下命令敲即可 git branch newBranch //新建本地 ...
- 好代码是管出来的——.Net Core集成测试与数据驱动测试
软件的单元测试关注是的软件最小可执行单元是否能够正常执行,但是软件是由一个个最小执行单元组成的集合体,单元与单元之间存在着种种依赖或联系,所以在软件开发时仅仅确保最小单元的正确往往是不够的,为了保证软 ...
- Coded UI Test中的数据驱动测试
有关什么是Coded UI Test以及如何使用Coded UI Test可以查看我的另一篇文章:http://www.cnblogs.com/jaxu/p/3706652.html 本文主要介绍如何 ...
- 在cocos code ide的基础上构建自己的lua开发调试环境
对于一种语言,其所谓开发调试环境, 大体有以下两方面的内容: 1.开发, 即代码编写, 主要是代码提示.补齐, 更高级一点的如变量名颜色等. 2.调试, 主要是运行状态下断点.查看变量.堆栈等. 现在 ...
- 如何在CentOS 7上使用vsftpd设置ftp服务器
一.前言介绍 FTP(文件传输协议)是一种标准的客户机-服务器网络协议,允许用户在远程网络之间传输文件. 有几个开源的FTP服务器可用于Linux.最受欢迎和广泛使用的是pureftpd.proftp ...
- robotframework - 基础关键词
robotframework基础关键词如下: 1.可在python.notepad++ 编辑: *** Settings *** *** Test Cases ***variable ${a} Set ...
随机推荐
- 二叉树的相关定义及BST的实现
一.树的一些概念 树,子树,节点,叶子(终端节点),分支节点(分终端节点): 节点的度表示该节点拥有的子树个数,树的度是树内各节点度的最大值: 子节点(孩子),父节点(双亲),兄弟节点,祖先,子孙,堂 ...
- (九)zabbix监控web应用
1)web应用监控介绍 使用zabbix自带的web场景可以监控url的状态码,响应时间,url的下载速度,非常的棒 思路:定义模板-->创建应用集--->定义web场景--->定义 ...
- VMware 虚拟机下载与安装
虚拟机下载 VMware官网地址:https://www.vmware.com/ 进行官网后,点击左边的下载图标,然后 根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载,如下图 ...
- JZOJ 5988 珂学计树题 (Burnside引理)
什么神题a-没学过Burnside引理a学了也做不来系列-考场没怎么看这题,上最后十分钟打了样例就溜了-然后这题爆0了. Here CODE #include <cctype> #incl ...
- C#验证数字的正则表达
说明:@符号的作用,省去转义字符\ "^\\+?[1-9][0-9]*$" 与 @"^\+?[1-9][0-9]*$" 等效 @"^(0?[1-9 ...
- 【Python之路】特别篇--Python正则表达式
正则表达式的基础 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大. 得益于这一点 ...
- ACM之一个简单的数学问题
一个简单的数学题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 zyc最近迷上了数学,一天,dj想出了一道数学题来难住他.算出1/n,但zyc一时答不上来希望大家能编程 ...
- mongodb Sort排序能够支持的最大内存限制为32M Plan executor error during find: FAILURE
1.一个比较老的游戏服维护,关服维护后启动时报错 2.看到关于mongodb的报错,于是去查一下mongodb的日志 Plan executor error during find: FAILURE, ...
- Java String字符串的不可变
Java 通过把String类设计为final使类不可继承,将变量value设置为private并且是final的,且value没有setter方法,不可修改. 为什么这么设计: 1.字符串常量池的需 ...
- django 网站上传资源的显示与配置
1. 上传资源的配置 1. 首先在项目里创建一个名称叫media的文件夹专门保存用户上传 2. settings.py文件配置上传资源的路径 # 上传资源路径,如果图片,上传文件等 MEDIA_UR ...