robotframework接口自动化测试详解

news2024/11/16 18:03:38

我们在使用rebotframework的时候,不只是能做UI自动化,接口自动化也是可以的。

那么这里就整理一下rebotframework_接口自动化的应用:

一、编写接口测试

 

 

 

 由上图可知,该接口如下信息: 

接口功能描述:预诊模版检索API,以及接口请求的地址

接口请求参数:详细介绍接口的参数名称,参数说明,参数的类型,参数的描述,参数在请求的时候是否为空,以及对应的范

接口返回说明:

  1)接口返回的格式,包含默认返回的字段,字段的说明,以及字段的类型

  2)接口基本返回示例,接口返回默认的字段信息

  3)接口响应码状态说明

  4)接口返回字段属性说明

  5)接口排序参数

接口请求URL实例 :请求说明,以及对应的URL

接口返回结果示例:根据接口实际返回的数据为例进行展示,这里返回的格式都是以json格式进行返回的

2、设计接口用例

常规接口在设计用例时,至少需包括两类,常规值用例、异常值用例。

接口的设计规范,主要包含三点:

  1)要做到流程和数据的分离,通过不断抽象,消除冗余

  2)测试用例应尽量简单易读,避免复杂逻辑

  3)建立测试用例分层架构,并坚守,自动化测试用例必须非常健壮,避免误报

3、编写接口用例

调用操作流程关键字,传入测试数据

 

编写接口测试时,首先需要进行数据准备,设置参数,然后构造请求,最后对结果进行断言,最后删除session

 在针对接口返回的结果进行断言,校验接口返回是否正常,是否符合预期值

价值主要取接口用例设计好之后,如何能让用例能发挥决于断言如何来写,接口自动化用例的最终目的是通过接入研发体系的CI持续集成中,通过接口每日构建中校验接口的稳定性,是否由于环境因素影响,或者每次迭代接口时对现有接口的影响。那么如何发现异常 ,简单来说,就是期望接口返回的数据与接口实际返回的数据不一致。而这个过程就需要通过合理地在接口用例中使用断言来实现。

那么有人会问,接口断言我加了啊?不就是校验接口返回的code值是否是成功的吗?我相信至少有一部分人在设计接口用例断言时,只有且仅有校验接口的返回code值,虽然code值的断言是需要的,但不能仅仅只通过这一种断言方式来做为接口是否有异常的判断依据。

那么接口断言,需要有几种呢,从上面接口用例设计的截图中大家也能看出,一般来说至少需要有三种:

正常code断言(正常返回的code值)、

异常断言(异常的code值和异常的message错误信息)、

接口关键数据断言(校验具体返回的数据字段值)

1、正常code断言

4、接口断言常用关键字

BuiltIn中包含的断言关键字,平时在对接口返回结果进行断言时也能使用以下关键字

Should Be Empty
Should Be Equal
Should Not Be Empty
Should Be Equal As Integers
Should Be Equal As Numbers
Should Be Equal As Strings
Should Be True
Should Contain
Should Contain Any
Should Contain X Times
Should End With
Should Match
Should Match Regexp
Should Not Be Equal
Should Not Be Equal As Integers
Should Not Be Equal As Numbers
Should Not Be Equal As Strings
Should Not Be True
Should Not Contain
Should Not Contain Any
Should Not End With
Should Not Match
Should Not Match Regexp
Should Not Start With
Should Start With

Collections中包含的断言关键字,平时在对接口返回结果进行断言时也能使用以下关键字

Dictionaries Should Be Equal
Dictionary Should Contain Item
Dictionary Should Contain Key
Dictionary Should Contain Sub Dictionary
Dictionary Should Contain Value
Dictionary Should Not Contain Key
Dictionary Should Not Contain Value
List Should Contain Sub List
List Should Contain Value
List Should Not Contain Duplicates
List Should Not Contain Value
Lists Should Be Equal
Should Contain Match
Should Not Contain Match

String中包含的断言关键字,平时在对接口返回结果进行断言时也能使用以下关键字

Should Be Byte String
Should Be Lowercase
Should Be String
Should Be Titlecase
Should Be Unicode String
Should Be Uppercase
Should Not Be String

实际行:

 

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

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

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

相关文章

Spring6快速入门

Spring6快速入门 各工具版本要求: JDK:Java17 Maven:3.6 Spring:6.0.9 简介 Spring是一个控制反转(IOC),面向切面(AOP)编程的轻量级框架。 2002年,Rod Johnson首次推出Spring框架的雏形,interface21(https://interface21.io/) 200…

python爬虫-获取cookie实例小记

注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!! 第一步:请求拿到响应内容。并分析。 第二步:关键步骤分析(这部分参考的B站图灵…

2023 年互联网 Java 工程师高级面试八股文汇总(1260 道题目附解析)

今年的行情,让招聘面试变得雪上加霜。已经有不少大厂,如腾讯、字节跳动的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言,甚至失去了难得的机会。 现如今,…

concurrenthashmap原理

目录 一、Concurrent类型的容器 二、HashMap多线程死链问题 三、Concurrenthashmap8原理 1、构造器 2、get流程 3、put流程 4、initTable 5、addCount方法 6、size流程 四、Concurrenthashmap7原理 1、put流程 2、rehash扩容流程 3、get流程 一、Concurrent类型的…

如何选型低代码平台

编者按:近年来,在数字经济迅速发展的背景下,越来越多的企业开始建立健全业务系统,借助数字化工具提升管理效率。企业如何选自己合适的产品,本文从低代码定义,特点技术路线做了介绍。其中MyApps低代码平台拥…

git常用命令之tag

11. Tag 11.1 创建tag 命令作用轻量标签git tag v1.0基于本地当前分支最新commit创建tag v1.0git tag v.0325 125a1d1给指定commit 125a1d打标签附注标签git tag -a v.0329 -m "给标签添加说明" 125a1d1基于指定commit创建标签并添加说明git tag -a v.0329 -m &quo…

联邦学习中怎样对数据质量进行评估

目录 联邦学习中怎样对数据质量进行评估 联邦学习中怎么在不暴露数据的情况下,证明数据量条目数 联邦学习中怎样进行数据质量评估 联邦学习中怎样对数据质量进行评估 在联邦学习中,评估数据质量是至关重要的,因为数据质量直接影响到模型的…

Redis 简介与数据类型介绍

目录 ​编辑 一、Redis是什么? 二、redis五大基本类型 2.1 String(字符串) 2.1.1 应用场景 1)缓存功能 2)计数器 3)统计多单位的数量 4)共享用户session 2.2 List(列表) 2.2.1 应用场景 1)消息队列 2…

07 redux的使用

总结 一.reduxjs/toolkit使用 1.1安装 安装: npm install reduxjs/toolkit在src目录中的store目录中的index.js中添加 1.2导入包中的对象 导入包中的对象 import { createSlice, configureStore } from reduxjs/toolkit1.3创建切片对象 创建切片对象 //这个…

霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)

1.车道线识别 当使用霍夫变换进行车道线识别时,可以按照以下步骤来编写 MATLAB 代码: 读入图像:使用imread函数读取包含车道线的图像。image = imread(lane_image.jpg);图像预处理:为了减少噪音和突出车道线,可以对图像进行预处理。通常,可以采用以下步骤:将图像转换为…

kafka入门,Kafka Broker工作流程、Broker重要参数(十一)

Zookeeper 存储的 Kafka 信息 在zookeeper的服务端存储的Kafka相关信息 1)/kafka/brokers/ids [0,1,2] 记录有哪些服务器 2)/kafka/brokers/topics/first/partitions/0/state 记录谁是leader,有哪些服务器可用 3)/kafka/controller 辅助选举l…

Java中的「接口」到底是什么?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言什么是接口接口的定…

浅浅的复习一下sql

DISTINCT 语法: SELECT DISTINCT 列名称 FROM 表名称1、现在有一个表如下: 2、执行sql语句-1 SELECT DISTINCT ename,email FROM emp 结果: 说明:由于小刘的ename和email重复了,所以结果只显示一次! 3…

面试最爱问的浏览器的缓存机制问题

老规矩,想要了解学会一项技术,先从定义下手! 浏览器的缓存的定义 浏览器的缓存是指浏览器在处理网络资源时,将这些资源存储在本地磁盘或内存中,并在后续的请求中重复使用这些缓存的资源。它旨在提高网页加载速度、减少…

AI画图——十二生肖

适当放下代码,有益身心健康。 AI绘画,码农必备,超解压。 多少没被和谐算多少~~~ 子鼠 丑牛 寅虎 卯兔 辰龙 巳蛇 午马 未羊 申猴 酉鸡 戌狗 亥猪

在期刊的参考文献中如何设置引用书中的一个章节

前言: 在bib文件中,使用book形式来引用书中的章节或文章。因为有些书籍是按照章节进行排列的,有些书籍收集了相关主题下的论文,当我们想要引用书中的要给章节或者书中的某篇文章的时候,我们该如何做呢? 下…

mysql不同隔离级别事务插入数据

文章目录 前言一、问题二、测试2.1.RR级别,mysql默认级别2.1.1 打开一个mysql窗口,事务A2.1.2 打开另一个窗口,事务B2.1.3 提交事务A,再看结果如下 2.2 READ-COMMITTED 级别下测试2.2.1修改数据库的my.ini文件修改隔离级别2.2.2 查…

国产MCU-CW32F030开发学习-OLED模块

国产MCU-CW32F030开发学习-OLED模块 硬件平台 CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件0.96 IIC oled模块 软件平台 Keil MDK 5.31IAR串口调试助手 IIC总线 处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双…

【AUTOSAR】AUTOSAR开发工具链(五)----polyspace-bug-finder 简单操作说明

1、打开polyspace-bug-finder,新建工程文件:File New Project,命名,选择保存路径,然后点击Next。 2、找到需要检测的文件,然后点击“Add Source Files” Finish 3、在Configuration左边窗口点击“…

HotSpot 虚拟机对象探秘

HotSpot 虚拟机对象探秘 对象的内存布局 在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding) 对象头 对象头记录了…