一.写在前面

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基础上使用数据驱动测试的更多相关文章

  1. 如何快速掌握DDT数据驱动测试?

    1.前言 (网盗概念^-^)相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动.(网盗结束)当我们测试某个网站的登录功能时,我们往往会使用不同的用 ...

  2. RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)

    在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的 ...

  3. GPT分区基础知识及如何在GPT分区上安装WIN7

    大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...

  4. git---如何在远程某个分支的基础上新建分支

    问题场景 技术主管让你去再某个git分支上新建一个分支去做你的项目,那么如何在原远程分支的基础上新建自己的分支呢? 解决方法 按照以下命令敲即可 git branch newBranch //新建本地 ...

  5. 好代码是管出来的——.Net Core集成测试与数据驱动测试

    软件的单元测试关注是的软件最小可执行单元是否能够正常执行,但是软件是由一个个最小执行单元组成的集合体,单元与单元之间存在着种种依赖或联系,所以在软件开发时仅仅确保最小单元的正确往往是不够的,为了保证软 ...

  6. Coded UI Test中的数据驱动测试

    有关什么是Coded UI Test以及如何使用Coded UI Test可以查看我的另一篇文章:http://www.cnblogs.com/jaxu/p/3706652.html 本文主要介绍如何 ...

  7. 在cocos code ide的基础上构建自己的lua开发调试环境

    对于一种语言,其所谓开发调试环境, 大体有以下两方面的内容: 1.开发, 即代码编写, 主要是代码提示.补齐, 更高级一点的如变量名颜色等. 2.调试, 主要是运行状态下断点.查看变量.堆栈等. 现在 ...

  8. 如何在CentOS 7上使用vsftpd设置ftp服务器

    一.前言介绍 FTP(文件传输协议)是一种标准的客户机-服务器网络协议,允许用户在远程网络之间传输文件. 有几个开源的FTP服务器可用于Linux.最受欢迎和广泛使用的是pureftpd.proftp ...

  9. robotframework - 基础关键词

    robotframework基础关键词如下: 1.可在python.notepad++ 编辑: *** Settings *** *** Test Cases ***variable ${a} Set ...

随机推荐

  1. UnexpectedRollbackException解决方案

    前言 最近在项目中发现了一则报错:“org.springframework.transaction.UnexpectedRollbackException: Transaction rolled ba ...

  2. 11步教你选择最稳定的MySQL版本

    11步教你选择最稳定的MySQL版本 来源:CSDN 作者:网络 发表于:2012-07-18 08:36 点击: MySQL开源数据库有多个重要分支,目前拥有的分支分别为:MySQL Cluster ...

  3. php类知识---常量点滴

    常量在类的内部,外部都可以访问,要通过类名::常量名 常量没有访问修饰符 与变量不同的是,常量不能放在双引号中取值,而变量可以 <?phpclass mycoach{ public $name= ...

  4. POJ-3974-Palindrome(马拉车)

    链接: http://poj.org/problem?id=3974 题意: Andy the smart computer science student was attending an algo ...

  5. 什么是http协议(一)

    http协议是大家在互联网中最为熟悉的协议,只要上网大家都会遇到,但是,很多人被问道什么是http协议,http协议的内容是什么就懵了.这里,我们随便聊聊http协议. 首先,我们说说协议.我一直觉得 ...

  6. Windows10启用或关闭Windows功能一直显示请稍候

    1.运行service.msc打开服务列表,找到Windows Modules Installer服务进行重启.如果重启失败,可以重启电脑后再次启动该服务. 2.此时运行controller打开控制面 ...

  7. 使用Python操作Excel文档(一)

    Python | 使用Python操作Excel文档(一) 0 前言 在阅读本文之前,请确保您已满足或可能满足以下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您 ...

  8. Vue_(组件通讯)组件

    Vue组件 传送门 组件Component,可扩展HTML元素,封装可重用的代码.通俗的来说,组件将可重用的HTML元素封装成为标签方便复用: 组件的使用: 使用全局方法Vue.extend创建构造器 ...

  9. Java基础__随机生成1~15之间不重复的数字

    package text; import java.util.ArrayList; import java.util.List; public class Text { public static v ...

  10. 域内信息收集 powershell收集域内信息

    POwershell收集域内信息 Powershell(你可以看做CMD的升级版 但是和cmd完全不一样) 原来的powershe是不能执行任何脚本的 更改执行策略 这个是一个绕过的脚本 接下来我们了 ...