rest-assured一些使用心得
rest-assured官方文档:https://github.com/rest-assured/rest-assured/wiki/Usage
中文文档:https://github.com/RookieTester/rest-assured-doc
1.设置httpclient属性
rest-assured是支持httpClient配置的, 默认情况下,REST Assured会为每个“given”语句创建一个新的http Client实例。 要设置httpClient属性,可以使用httpClientFactory
方法提供自定义httpClient实例,然后再设置httpClient的RequestConfig:
public Response get(Map<String, ?> headers, Map<String, ?> parameters, String url,int connectTimeout, int requestTimeout, int socketTimeout, boolean redirectsEnabled) {RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectTimeout) //设置连接超时时间.setConnectionRequestTimeout(requestTimeout) //设置请求超时时间.setSocketTimeout(socketTimeout).setRedirectsEnabled(redirectsEnabled) //是否允许自动重定向.build();config().httpClient(HttpClientConfig.httpClientConfig().httpClientFactory(() ->HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build()));RequestSpecification restHandle = given();if(headers != null ) {restHandle.headers(headers);}if(parameters != null ) {restHandle.request().params(parameters);}return restHandle.when().get(url);}
2.过滤器使用
rest-assured要使用Filter必须实现io.restassured.filter.Filter类,这个类下面有一个方法:
Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx);
}
这个可以取到每次请求的request与response的所有信息,rest-assured默认有几个已经实现了的filter:
比如RequestLoggingFilter(),可以打印所有的请求参数:
当要设置一些固定的请求头,请求体,或者生成sign可以用filter,可以省略大部分重复代码,一个请求可设置多个filter,用法如下:
given().filter((requestSpec, responseSpec, ctx) -> {requestSpec.param("1111", "1111").param("22222", "22222");return ctx.next(requestSpec, responseSpec);})
.then().get(/aaa);
3.URL的两种风格
调用http接口的时候url有两种风格
参数当url路径: http://127.0.0.1:3301/put/{id}/{orderId}
?后拼接参数: http://127.0.0.1:3301/put?id=1&orderId=2
如果入参的parameter是一个map的话,可以如下处理
parameters: {"orderId", "11111"} {"driverId", "22222"} // /order/{orderId}/{driverId}
given().when().put(url, parameters);// /order?orderId=1111&driverId=22222
given().params(parameters).when().put(url);
4. 设置请求默认ContentType
given().config(config().encoderConfig(EncoderConfig.encoderConfig().defaultCharsetForContentType("UTF-8", ContentType.URLENC)));
5. sslCofing设置
private void sslConfig(String certPath, String password) {KeyStore keyStore = null;SSLConfig config = null;try {keyStore = KeyStore.getInstance("PKCS12");keyStore.load(new FileInputStream(certPath),password.toCharArray());} catch (Exception ex) {ex.printStackTrace();}if (!Objects.isNull(keyStore)) {org.apache.http.conn.ssl.SSLSocketFactory clientAuthFactory = null;try {clientAuthFactory = new org.apache.http.conn.ssl.SSLSocketFactory(keyStore, password);} catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException | UnrecoverableKeyException e) {e.printStackTrace();}config = new SSLConfig().with().sslSocketFactory(clientAuthFactory).and().allowAllHostnames();}RestAssured.config = RestAssured.config().sslConfig(config);}
6. https请求忽略ssl设置
RestAssured.useRelaxedHTTPSValidation();
rest-assured一些使用心得相关推荐
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- 测试心得:微图书销售小程序
测试心得:微图书销售小程序 前言 这个学期差不多也将近结束,经过大半个学期,从项目需求的确认和项目文档的编写,到一步步的设计与实现,现在终于到了测试阶段,但是我们在测试阶段也暴露出了很多bug,但是每 ...
- java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得
该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...
- 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档
计算机会计实习心得 计算机会计实习心得1 毕业实践环节是大学生在完成全部课程后.走向社会之前最真实的一个模拟实验,对于我们财会专业的学生,平时注意注重理论学习,缺乏实践锻炼,因此实习显得尤为重要.在本 ...
- html5考试总结300字,期中考心得300字5
为了检验学生半个学期所学的知识而进行的一次考试,有利于学生比较正式地检验自己平时的学习水平,根据这个成绩,学生可以及时的调整学习心态和方法,更有效率地进行下一阶段的学习,期中考试主要考察学生前半学期的 ...
- Assembly学习心得
http://blog.csdn.net/etmonitor/ Assembly学习心得 说明: 最近开始准备把学到的.NET知识重新整理一遍,眼过千遍不如手过一遍,所以我准备记下我的学习心得,已备参 ...
- 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得
[IT168 专稿]不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?其实,Windows Ser ...
- mysql主从数据库含义_(转)Mysql数据库主从心得整理
管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...
- 工作中InnoDB引擎数据库主从复制同步心得
近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别 ...
- 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素
朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...
最新文章
- wamp配置虚拟主机
- [Spring 深度解析]第5章 Spring之DAO
- 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!
- python脚本实例手机端-手机APP自动签到-python实现 - 运维之路
- cordova 打包工具
- 20200207_Dontla_MBTI第二步解释性报告(ISTJ(内向+感觉+思考+判断))
- 数据结构二之线段树Ⅰ——Count Color,Hotel,Transformation,Tree Generator™
- halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)
- spring学习(5):spring简介
- Python入门级2
- Android NDK JNI C++ 3
- layui数据表格格式化
- Q125:PBRT-V3,对比VolPathIntegrator::Li()和EstimateDirect()判断Medium的方式
- java digestutils.md5hex_linux下md5sum和DigestUtils.md5Hex的关系 博客分类: java
- 三菱RS指令无协议通信功能概述
- appfuse上手(选取刘文涛blog)
- 第二章 MATLAB数据与矩阵
- 不干正事儿系列文章1:Sonic Pi简单应用
- 大流量的网站如何解决访问量的问题
- ctf的web题目php,32C3 CTF 两个Web题目的Writeup
热门文章
- win7系统关闭蓝牙服务器,win7系统蓝牙服务被禁用的解决方法
- 如何使用计算机自带的刻录软件,Win10电脑如何刻录光盘?利用win10自带刻录工具来刻录DVD光盘教程...
- python web flask 插件_Python WEB框架之Flask
- TM4C123GLaunchPad教程四_时钟配置
- Drools——什么是规则
- SpringBoot 使用freemarker 处理文档,找不到文件位置(报错:basePackagePath=““ /* relatively to resourceLoaderClass pkg)
- 快速缓解眼睛疲劳的穴位按摩
- excel表格自动填充为汉字拼音首字母
- [每日一氵] openCV drawMatches 函数中 flag 用法
- “老赖”罗永浩:“首席忽悠官”,发布黑科技鲨纹技术