RequestsLibrary常用的关键字

关  键  字

描   述

Create Session

创建HTTP会话

Get Request

采用get方式请求

Post Request

采用Post方式请求

Put Request

采用Put方式请求

Delete Request

采用Delete方式请求

Head Request

头部请求

Delete All Sessions

删除所有HTTP会话

To Json

转换为json格式

▲ 还有更多关键字,请在RF框架F5键查阅测试库使用方法,需要给合其它测试库的Create Dictionary和Get From Dictionary、Should Be Equal As Integers、Should Be Equal As Strings关键字使用

测试金字塔

从金字塔图可知:

1、UI测试投入成本高,速度慢,常见的黑盒自动化测试场景

2、Service接口测试属于二者之中,测试收益最大,且最容易有成果和成效的部分【前提条件:需要产品开发人员必须提供接口文档】

3、Unit单元测试成本低,速度快,一般是有产品开发团队进行开展

接口用例分层设计

在这里模块可划分成三类:

一类,按功能模块划分,在命名时以具体功能作为命名,如登录模块,可命名为Login,且功能模块主要用来验证某个单一模块下各接口功能上是否符合预期

二类,按业务模块划分,在命名时以Business命名,所有业务功能验证均存放在此目录下,主要用来验证实现具体业务功能时,各接口的关联组合调用验证,如验证某个视频播放功能时,其中,对于视频播放这一具体的业务来说可能会涉及到很多接口之间的调用,包括接口前置条件,接口之间传递数据,接口数据清理等。

项目的功能模块划分以具体的项目而定,在实际的接口自动化项目开展中,需要求开发人员提供项目接口对接文档。接口测试人员,依据接口对接文档描述,划分具体的功能模块及某个功能模块下包含了哪些具体接口。

三类,按安全模块划分,在命名时以Safe命名,所以安全功能验证均存放在此目录下同,主要用来验证接口安全,比如绕过验证、敏感信息是否加密等。

整体分层如下:

不同接口模块下,又可根据子功能的不同,划分成不同的接口。主要包含两部分:

1、接口业务关键字(所谓关键字驱动:对应在其它编程语言中,这里所说的关键字,其实就是封装的函数、方法),通常一个接口下,可以根据测试的业务不同,定义多个不同的关键字

2、接口功能用例,接口用例下仅需填测试数据即可(也就是常见的数据驱动测试方法)。通常不同的用例存放不同的测试数据,即业务关键字的入参,业务关键字根据接收到不同测试数据而去自动执行对应的业务流程。

通常将具体的一组动作序列封装一个业务关键字,测试用例中之所以只存放测试数据,设计核心就是在于将测试业务与测试数据分离。因为通常测试过程中,一个业务关键字的动作序列不会经常变更,需要变更的是测试数据,通常不同的测试数据,会导致业务关键字的产生的结果不同。如下图所示:通过调用数据驱动模板把每行不同的数据逐步传参到接口业务关键字执行用例。

公共方法数据分离

主要包括三部分:公共方法(Public)、项目配置文件(Config)、数据构造文件(xx_var.py)。其中:

● 公共方法,主要提供各个不同项目接口之间都会调用到的一些公共方法,如数据加密、解密,接口数据校验、接口统计等。

● 项目配置文件,主要存储接口在各个不同环境下(通常一个产品,开发完成后,都需要在测试环境验证通过后,才可发布到线上环境,这里所说的不同环境指的就是测试环境、线上环境)的访问地址,通常做法可在业务关键字编写脚本时,将接口访问地址通过变量来控制,然后此变量访问主配置文件对应的接口地址即可,通常接口环境分定义为测试环境下的接口访问地址、预发布环境接口地址、线上接口环境地址等。

● 数据构造文件,由于在不同环境下,需要用到的测试数据可能会有所不同,所以可通过构建对应环境下的变量文件来为接口在不同环境下执行时提供测试数据,变量控制文件中主要存储一些可变的变量文件,或通过函数来构造测试数据然后再将构建数据方法返回到具体变量中提供给测试用例或业务关键字使用。

数据控制文件的设计核心在于,在变量文件中定义构造数据的函数方法,然后将方法的返回值赋给一个变量,在具体的接口引用该变量。

除了通过python代码函数以外,还可通过如下关键字来封装成函数通过返回值传参供业务关键字调用,如下图所示:

  • 封装加密接口

这里产品接口登录采用了token+毫秒级时间戳+md5+aes接口加密处理流程,具体解决方法如下:

先封装好生成密钥接口,如上图所示,先创建时间再转换原始时间,然后再转换为毫秒级时间戳,然后根据生成密钥规则原理进行逻辑处理,最后调用关键字Body Encrypt生成aes密钥,再返回创建的时间戳和产生的AES密钥提供其它用例模块使用。

这里的关键字Body Encrypt是需要自己二次开发测试库。然后导入自己开发的测试库就可以使用关键字,如下图所示:

  • 封装获取token值

需要通过传参生成的AES密钥和时间戳传入给${Data}变量,登录成功后,会返回token值,提供其它用例模块调用。

  • 数据驱动

如上图,录入数据,通过调用测试模板修改个人信息,把数据传参过去。

这里调用加密接口和获取token接口,把token变量传给头部,这样能够进行其它用例接口测试,因其它用例接口头部涉及到token字段,所以需要用到token构造头部。

RequestsLibrary接口测试的更多相关文章

  1. 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试

    写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...

  2. robotframework使用requestsLibrary进行接口测试

    一.定义 接口测试:接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务 分类:RESTful.webservice接口 二.安装 进入C:\Pyhon27\scripts 先要安装r ...

  3. 2、大型项目的接口自动化实践记录--接口测试简介及RequestsLibrary关键字简介

    1.接口测试简介 1)先简单介绍下接口测试,那么什么是接口测试呢? 百科的回答:接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 看起来有 ...

  4. Web接口测试工具---Poster与Postman

    工作当中有不少时间在编写和维护接口自动化测试用例.打算先整理一些接口相关工具的使用. 简单对接Web口测试的相关工具/技术做个划分. HTTP/SOAP协议接口的功能测试: 1.浏览器URL(GET请 ...

  5. robotframework接口测试初探1

    robotframework这个框架最近很多人在使用它,大部分是和selenium结合的,大概看了下,然后发现这个做接口测试感觉也还不错,初步研究了下 环境安装: robotframework这个环境 ...

  6. RobotFrameWork http/https oauth接口测试 (二)

    在RobotFrameWork http/https oauth接口测试 (一)中,大致介绍了相关的概念,终于可以步入正题了~~~ 先介绍下项目背景: 公司的项目采用的授权模式是第三种resource ...

  7. robotframework接口测试(一)—Get request json

    (前提:引入了 requests.requestsLibrary等相关库,这样才可以只有相关的关键字.) 理想中的过程: 1. 创建session 2. 在该session下发起请求 3. 验证返回结 ...

  8. 使用Robot Framework做接口测试

    http://chuansong.me/n/1858477 1.RF框架 1.1 RF框架介绍Robot Framework 框架是一个通用的测试框架,一直是由诺西网络(Nokia Siemens N ...

  9. 接口测试工具--Poster与Postman的简单实用

    HTTP/SOAP协议接口的功能测试: 1.浏览器URL(GET请求) http://127.0.0.1:8000/login/?username=zhangsan&password=1234 ...

随机推荐

  1. Python学习计划-首篇

    概述 Python语言这几年的热度一直持续上升,有多火也不用我再介绍了,光从近几年编程语言排行榜的上升热度就能看出,因此我也计划学习一下python语言,并且将每次的学习收获记录下来.一方面是记录下来 ...

  2. Springboot 测试类没有找到bean注入

    其他乱七八糟配置就不扯了,先上项目结构图 配置好参数后我再src/test/java类测试访问数据库时发现bean没有正确的注入.值得注意的是,这个项目的启动类是叫App.java 所以我们必须在这个 ...

  3. php.ini配置文件参数中文说明文档

    转自  https://blog.csdn.net/seoyundu/article/details/101147041 中文翻译php.ini配置文件 [PHP php.ini-dist] ;;;; ...

  4. 第十四章·Kibana深入-Timelion画图实现系统监控

    什么是Timelion? Timelion使你可以轻松获得以下问题的答案: 1)随着时间的推移,每个唯一的用户会查看多少个页面?2)这个星期五和上周五之间的交通量有什么不同?3)今天有多少日本人口来到 ...

  5. PHP的八种数据类型

    PHP 支持8种基本的数据类型. 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: arr ...

  6. 使用VGG16完成猫狗分类

    from keras.applications.vgg16 import VGG16 from keras.models import Sequential from keras.layers imp ...

  7. maven-war-plugin

    Name Type Since Description 默认值 cacheFile File 2.1-alpha-1 包含webapp结构的文件缓存 ${project.build.directory ...

  8. p1268树的重量 题解

    题面描述点此qwq. 正解开始. 一道茅塞顿开恍然大悟的题目: 第一眼看到这个题的时候,语文不好的我对着题目中的 这些,和: 这句话发呆半天,,,, 因为不关我怎么构建几何模型,我都不理解这句话.. ...

  9. New!Devexpress WinForms各版本支持Visual Studo和SQL Server版本对应图

    点击获取DevExpress v19.2.3最新完整版试用下载 本文主要为大家介绍DevExpress WinForms各大版本支持的VS版本和支持的.Net版本图,Devexpress WinFor ...

  10. vscode安装eslint插件,代码统一自动修复

    ESlint:是用来统一JavaScript代码风格的工具,不包含css.html等. 方法和步骤: 通常情况下vue项目都会添加eslint组件,我们可以查看webpack的配置文件package. ...