RobotFramework之接口自动化流程测试

news2024/11/14 21:20:56

Robot Framework之接口测试自动化(数据准备、数据脚本实现、实现层和断言层、测试报告)

 

   脚本用例通用模板设计 单接口用例测试 数据准备,已经取出了该接口的所有正向和逆向接口测试用例,那现在如何把数据和用例结合起来,进行断言,判断响应回来的结果与断言结果是否保持一致。如果保持一致,接口测试成功,如果保持不一致,判断出错的原因。

  一个测试用例对应一个接口,一个接口对应一个excel文件对应的sheet获取用例数据。目的是便于后期维护。

  脚本通用测试用例主要更改的地方包括:文件名称、sheet名称、请求类型(Get/Post)、请求类型后参数调用(比如json、param、data)、断言key的验证(比如success、description)等信息。

单接口测试-通用脚本测试用例:

  #分别获取来源数据excel表名、对应的sheet表。红色的都是变量,需要根据自己的项目进行变更和修改。
    ${dir}    Set Variable    用例数据excel地址
    ${sheetname}    Set Variable    用例数据excel中sheet表名称-接口名称
    Set Global Variable    ${dir}
    Set Global Variable    ${sheetname}
    获取用例表信息
    : FOR    ${row}    IN RANGE    2    ${rowCount}
    \    ${action}    Read Cell Data By Coordinates    ${sheetname}    1    ${row}
    \    run keyword if    '${action}'=='N'    Continue For loop
    \    Set Global Variable    ${row}
    \    获取单个用例参数
    \    Create Session    api    ${host}    
    \    ${res}    Get(或Post)    Request    api    ${uri}    params=${参数变量}
    \    ${responsedata}    to json    ${res.content}
    \    ${assert}    get from dictionary    ${responsedata}    msg
    \    Should Be Equal    ${assert}    @{ConfPara}[2]

    查询分页,从excel中获取数据 脚本用例通用模板设计主要是针对excel中取数据,通过调用关键字去操作。但是有时候如果我们需要从数据库取数据、数据是随机产生的、需要先从数据类新增数据。 excel里面的断言内容是固定的,但断言结果不固定。比如列表数据求和,需要根据sql查询数据库的结果来和接口返回的数据做比较。 有时候需要保证数据库的一致性,在操作了新增等操作,需要对数据进行还原操作。

 数据字段不能重复:

#数据字段不能重复
    #分别获取来源数据excel表名、对应的sheet表
    ${dir}    Set Variable    test.xls
    ${sheetname}    Set Variable    test
    Set Global Variable    ${dir}
    Set Global Variable    ${sheetname}
    获取用例表信息
    : FOR    ${row}    IN RANGE    2    ${rowCount}
    \    ${action}    Read Cell Data By Coordinates    ${sheetname}    1    ${row}
    \    run keyword if    '${action}'=='N'    Continue For loop
    \    Set Global Variable    ${row}
    \    获取单个用例参数
    \    Create Session    api    ${host}    
    \    ${name}    generate random string    5    [LOWER]
    \    run keyword if    '&{ConfDataDict}[attrCnname]'=='random'    set to dictionary    ${ConfDataDict}    attrCnname    ${name} 
    \    ${res}    Get Request    api    ${uri}
    \    ${responsedata}    to json    ${res.content}
    \    ${assert}    get from dictionary    ${responsedata}    msg
    \    Should Be Equal    ${assert}    @{ConfPara}[2]

RF安装Databases,比如MySQL

1.pip install PyMySQL

连接数据库:Connect To Database pymysql 数据库名 数据库用户名 数据库密码 ip 数据库端口

断开连接:Disconnect From Database

如何对数据库表进行查询:query

如何插入和删除数据:Execute Sql String

如何执行数据库脚本文件:INSERT INTO city(name,code) VALUES(‘wendy’,'001')

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

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

相关文章

fastadmin 自定义弹窗大小,遮罩关闭弹窗问题

// 更改表格里面的默认编辑按钮弹窗table.on(post-body.bs.table,function(){// 这里就是数据渲染结束后的回调函数$(".btn-editone,.btn-add").data("area", [80%,90%]);$(".btn-editone,.btn-add").data("shade", [0.6,"#000&q…

测试经理应该怎么写测试部门年终总结报告?

年终总结一般对季度、半年度或年度总结的一个整理,我们需要定期对工作中的内容进行定期总结和复盘。将每一次复盘中总结出来的一些收获叠加起来,在针对性地调整一下,就是一份合格的年终总结。具体可以分为如下几个步骤: 1.先把这…

【第一阶段】kotlin语言的Nothing类型

fun main() {show(60) } //两种写法一样 private fun show(num:Int){when(num){//下面这句话不是注释提示,会终止程序-1->TODO("不符合")in 0..59->println("不及格")in 60..89->println("及格")in 90..100->println(&qu…

Zookeeper特性与节点数据类型详解

CAP&Base理论 CAP理论 cap理论是指对于一个分布式计算系统来说,不可能满足以下三点: 一致性 : 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的 特性,等同于所有节点访问同一份最新的数据副本。在一致性的需…

PPT颜色又丑又乱怎么办?

一、设计一套PPT时,可以从这5个方面进行设计 二、PPT颜色 (一)、PPT常用颜色分类 一个ppt需要主色、辅助色、字体色、背景色即可。 (二)、搭建PPT色彩系统 设计ppt时,根据如下几个步骤,依次选…

时间复杂度空间复杂度相关练习题

1.消失的数字 【题目】:题目链接 思路1:排序——》qsort快排——》时间复杂度O(n*log2n) 不符合要求 思路2:(0123...n)-(a[0]a[1][2]...a[n-2]) ——》 时间复杂度O(N)空间复杂度…

Leetcode-每日一题【剑指 Offer 15. 二进制中1的个数】

题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 1 的个数(也被称为 汉明重量).)。 提示: 请注意,在某些语言(如 Java&…

计算机网络 ARP协议 IP地址简述

ARP只能在一个链路或一段网络上使用

气体检测仪语音报警芯片,可自行烧录的音频芯片,WT588F02B-8S

近年来,安全问题备受关注,特别是涉及气体泄漏的危险场景。 为了进一步增强气体检测仪的安全功能,市面上便研发出了一款有害气体报警器,并采用WT588F02B-8S语音提示芯片为元器件,为产品赋予更多声音,更多警示…

嵌入式开发学习(STC51-2-创建工程模板)

创建工程模板(以多文件模板为例) 打开keil,创建新工程 选择文件目录,起名 选择芯片类型 (没有找到对应芯片类型的可以网上搜索:keil配置stc系列器件支持包,配置好后就可以了) 创…

泰国的区块链和NFT市场调研

泰国的区块链和NFT市场调研 基本介绍 参考: https://zh.wikipedia.org/zh-hans/%E6%B3%B0%E5%9B%BD参考: https://hktdc.infogram.com/thsc–1h7k2303zo75v2x zz制度: 君主立宪制(议会制) 国王: 玛哈哇集拉…

hbuilder的获取头像以及位置

条件编译 // #ifndef VUE3 import Vue from vue import ./uni.promisify.adaptor Vue.config.productionTip false App.mpType app // 初始化vue应用 const app new Vue({...App }) // 挂载vue应用 app.$mount() // #endif// #ifdef VUE3 import { createSSRApp } from vue…

Pet Detection System (PDS)

宠物医院检验设备物联系统

PHP原生类

什么是php原生类 原生类就是php内置类&#xff0c;不用定义php自带的类&#xff0c;即不需要在当前脚本写出&#xff0c;但也可以实例化的类 我们可以通过脚本找一下php原生类 <?php $classes get_declared_classes(); foreach ($classes as $class) {$methods get_clas…

c++中const修饰成员函数的问题

问题引入&#xff1a; 看下面这一段代码&#xff1a; class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << "Print()" << endl;cout << "year:" << _year <&…

利用hfish反控境外攻击源主机

导师给了7个网络安全课题选题&#xff0c;本想和他聊了下思路&#xff0c;他一挥手让我先做出点东西再来聊就把我打发走了…… 正好前段时间阿里云到校做推广&#xff0c;用优惠卷薅了一台云服务器&#xff0c;装了hfish先看下情况 没想到才装上没两天数据库就爆了&#xff0…

CDN安全面临的问题及防御架构

CDN安全 SQL注入攻击&#xff08;各开发小组针对密码和权限的管理&#xff0c;和云安全部门的漏洞扫描和渗透测试&#xff09; Web Server的安全&#xff08;运营商和云安全部门或者漏洞纰漏第三方定期发布漏洞报告修复&#xff0c;例如&#xff1a;nginx版本号和nginx resol…

MuMu模拟器运行一段时间后Device.Present耗时突然上升

1&#xff09;MuMu模拟器运行一段时间后Device.Present耗时突然上升 2&#xff09;​如何在运行过程中获得温度信息 3&#xff09;Input System鼠标更换主按键的Bug 4&#xff09;如何禁止Unity向https://config.uca.cloud.unity3d.com发送设备信息 这是第347篇UWA技术知识分享…

手把手写教学C#写一个串口接收助手

C#上位机 文章目录 C#上位机[TOC](文章目录) C#一个简单串口助手创建工程&#xff1a;一、控件的设置1.显示TextBOX2.选项框comboBOX3.标签label4.按键button 二、组件的设置1.添加定时器time组件2.添加串口组件serialPort 三、代码部分总结 C#一个简单串口助手 实现简单的串口…

12_Vue3中的其它变化

1. 全局 API 的转移 2.其它改变