RequestsLibrary接口测试

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构造头部。

原文地址:https://www.cnblogs.com/yinjia/p/11920544.html

时间: 2024-10-05 05:50:10

RequestsLibrary接口测试的相关文章

使用requestsLibrary进行接口测试

一.定义 接口测试:接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务 分类:RESTful.webservice接口 二.安装 进入C:\Pyhon27\scripts 先要安装requests,再安装requestsLibrary 安装requests:pip install requests,官方下载地址:https://pypi.python.org/pypi/requests 安装requestsLibrary:pip install robotframework-r

robotFramework接口测试GET和POST请求

安装: 接口测试需要安装Request和RequestLibrary 包 使用cmd命令安装:pip install requests 使用cmd命令安装:pip install -U robotframework-requests 安装完后在site-packages目录下会生成2个目录 然后将request和RequestsLibrary导入到Robotframework中: 使用: 一.GET接口请求 二.POST请求

RobotFramework教程使用笔记——requests和requestslibrary库

Robotframework也可以进行接口测试,只要导入相应的库就可以做到. 一.准备工作 1.导入requests,使用pip,或者手动下载 pip install requests 2.导入requestsLibrary pip install robotframework-requests 如何安装pip,可以看这里:http://www.cnblogs.com/dreamyu/p/6856067.html 二.简单例子  先来一个简单的请求实例: 查看运行结果:     返回值中文乱码问

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

工作当中有不少时间在编写和维护接口自动化测试用例.打算先整理一些接口相关工具的使用. 简单对接Web口测试的相关工具/技术做个划分. HTTP/SOAP协议接口的功能测试: 1.浏览器URL(GET请求) http://127.0.0.1:8000/login/?username=zhangsan&password=123456 2.浏览器插件:Poster.Postman 简单的接口测试. 3.独立的接口工具: Jmeter(支持SOAP). robot framework(RequestsL

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

在RobotFrameWork http/https oauth接口测试 (一)中,大致介绍了相关的概念,终于可以步入正题了~~~ 先介绍下项目背景: 公司的项目采用的授权模式是第三种resource owner password credentials密码模式,因为认证服务器和资源服务器都是公司内部的项目,所以采用了这个方式,公司的处理流程大致如下: (A)用户向客户端提供账号和密码. (B) 客户端将用户凭证以及客户端凭证信息发送到认证服务器. (C) 认证服务器校验客户端请求合法,并且用户

使用robotframework做接口测试之一——准备工作

最近发现做接口测试的朋友越来越多了,打算写一个系列的rf+requests做接口测试(主要是Http接口)的文档,可以帮助新入门的同学对接口测试有个大概的了解,同时也是敦促自己做总结的一种手段.希望经验丰富的大神路过时,如发现我文档中的不足,提出中肯的批评及更好的解决思路.以期共同进步. 一.环境准备 1)默认已经安装robotframework2)默认已经安装requests库3)默认已经安装并成功导入RequestsLibrary4)会用抓包工具,fiddler或Charles都可 用这个库

接口测试2

一.WebService和HTTPService的区别 1.基于不同协议:HTTPService基于http协议,而WebService基于soap协议 2.跨域的处理:HttpService方式不能处理跨域,如果调用一个其它应用的服务就要用webService 3.处理数据效率不同:HTTPService效率较高,WebService能处理较复杂的数据类型 当你要调用一个你本服务的内容的时候,不涉及到跨域的问题,你可以使用HttpService的方式.如果,你需要在后台调用一个其它应用的服务,

主流接口测试框架对比

公司计划系统的开展接口自动化测试,需要我这边调研一下主流的接口测试框架给后端测试(主要测试接口)的同事介绍一下每个框架的特定和使用方式.后端同事根据他们接口的特点提出一下需求,看哪个框架更适合我们. ### 需求: 1.接口编写方便. 2.方便调试接口. 3.支持数据初始化. 4.生成测试报告. 5.支持参数化. #### robot framework 优点 关键字驱动,自定义用户关键字. 支持测试日志和报告生成. 支持系统关键字开发,可扩展性好. 支持数据库操作. 缺点 接口测试用例写起来不

微信接口测试

<!docType html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimu