RestAssured接口自动化从入门到框架搭建-19-解析和认证

2024-06-11 10:38

本文主要是介绍RestAssured接口自动化从入门到框架搭建-19-解析和认证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇来学习下Rest Assured中的解析,在Rest Assured 几种解析有:XML,JSON,HTML.TEXT四种。我们可以从哪儿看到这几种类型呢,在请求头那里,可以看到content-type(例如下图),一般值是text/html这样,说明这个响应内容是html格式。而且前面我们知道,不管响应内容是什么格式,Rest Assured都会自动找到解析器,去进行解析。

 

1.全局指定Parse类型

例如在我们自己项目中,我们返回类型,比如说就只有一种就是JSON类型,那么我们在框架设计中可以指定默认的解析器就是JSON类型。一下是代码,如果知道是哪种类型就选择哪一行代码指定默认解析器。

        @Testpublic void testDefaultParser() {RestAssured.defaultParser = Parser.JSON;RestAssured.defaultParser = Parser.XML;RestAssured.defaultParser = Parser.HTML;}

 

2.在局部指定解析器

局部指定就是在某一个接口请求的时候指定。

        @Testpublic void testDefaultParser2() {//given().get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/").then().using().defaultParser(Parser.JSON);given().get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/").then().using().defaultParser(Parser.XML);}

 

3.使用自定义的Parser

有时候content-type不光是xml,存在一些自定义的类型。

        @Testpublic void testCustomerParser1(){RestAssured.registerParser("application/vnd.uoml+xml", Parser.XML);RestAssured.unregisterParser("application/vnd.uoml+xml");}

或者下面这样写

        @Testpublic void testCustomerParser2() {given().get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/").then().using().parser("application/vnd.uoml+xml", Parser.XML);}

 

认证和授权

认证(authentication)
主要作用是验证你是谁,不能你告诉服务器你是谁,你就是谁。常用的认证方法有:
1. 登录表单
2. HTTP认证
3. HTTP digest
4. X.509证书
5. 其他自定义认证方法


授权(authorization)

主要作用是决定你是否有全选访问资源。主要实现方法有:
1. URLs访问控制
2. 安全对象和方法
3. 访问控制清单(ACLs)

 

这里我们来看看Rest Ressured中授权的代码在接口中的基本使用。

等待服务器询问秘钥方式

这种基本的认证就是,通过用户名和密码,也就是我们登录验证的场景。在Rest Assured中,这种场景大概是这样的:一开始Rest Assured不会直接把用户名和密码这个秘钥发给服务器。当服务器明确告诉客户端需要登录验证的时候,Rest Assured才发送,是放在请求头中发送,所以这个过程,至少执行了两次请求-响应过程,第一次不带用户名密码这个秘钥发送请求,响应告诉客户端你需要告诉我登录秘钥。第二次客户端发送请求,请求头带上账号信息,第二次服务器返回响应。

        @Testpublic void testBasicChallengeAuthentication() {given().auth().basic("tom", "123").when().get("https://www.xxx.com").then().statusCode(200);}

这种方式还可以这样写

        @Testpublic void testBasicAuthentication() {RestAssured.authentication = basic("tom", "123");given().get("https://www.xxx.com").then().statusCode(200);}

 

先发制人方式

上面是等待服务器明确要求认证,Rest Assured才发送账号秘钥。还有方式就是,不等服务器询问,啥也不管,把秘钥发过去再说,类似先发制人的效果。

        @Testpublic void testBasicPreemptiveAuthentication() {given().auth().preemptive().basic("tom", "123").when().get("https://www.xxx.com").then().statusCode(200);}

 

Digest盘问方式

Digest认证方式是HTTP协议的一种算法,这种方式也是需要等待服务器盘问之后,才发送秘钥。简单来看一个例子,了解一下。

        @Testpublic void testDigestAuthentication() {given().auth().digest("tom", "123").when().get("https://www.xxx.com").then().statusCode(200);}

       前面这十几篇文章介绍了Rest Assured这个接口测试工具的基本功能,主要就是练习使用Rest Assured提供的API,接下来文章,主要介绍如何借助Rest Assured来搭建我们接口自动化测试框架。

这篇关于RestAssured接口自动化从入门到框架搭建-19-解析和认证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050939

相关文章

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C