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一些使用心得相关推荐

  1. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  2. 测试心得:微图书销售小程序

    测试心得:微图书销售小程序 前言 这个学期差不多也将近结束,经过大半个学期,从项目需求的确认和项目文档的编写,到一步步的设计与实现,现在终于到了测试阶段,但是我们在测试阶段也暴露出了很多bug,但是每 ...

  3. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  4. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档

    计算机会计实习心得 计算机会计实习心得1 毕业实践环节是大学生在完成全部课程后.走向社会之前最真实的一个模拟实验,对于我们财会专业的学生,平时注意注重理论学习,缺乏实践锻炼,因此实习显得尤为重要.在本 ...

  5. html5考试总结300字,期中考心得300字5

    为了检验学生半个学期所学的知识而进行的一次考试,有利于学生比较正式地检验自己平时的学习水平,根据这个成绩,学生可以及时的调整学习心态和方法,更有效率地进行下一阶段的学习,期中考试主要考察学生前半学期的 ...

  6. Assembly学习心得

    http://blog.csdn.net/etmonitor/ Assembly学习心得 说明: 最近开始准备把学到的.NET知识重新整理一遍,眼过千遍不如手过一遍,所以我准备记下我的学习心得,已备参 ...

  7. 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得

    [IT168 专稿]不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?其实,Windows Ser ...

  8. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  9. 工作中InnoDB引擎数据库主从复制同步心得

    近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别 ...

  10. 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

    朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...

最新文章

  1. wamp配置虚拟主机
  2. [Spring 深度解析]第5章 Spring之DAO
  3. 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!
  4. python脚本实例手机端-手机APP自动签到-python实现 - 运维之路
  5. cordova 打包工具
  6. 20200207_Dontla_MBTI第二步解释性报告(ISTJ(内向+感觉+思考+判断))
  7. 数据结构二之线段树Ⅰ——Count Color,Hotel,Transformation,Tree Generator™
  8. halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)
  9. spring学习(5):spring简介
  10. Python入门级2
  11. Android NDK JNI C++ 3
  12. layui数据表格格式化
  13. Q125:PBRT-V3,对比VolPathIntegrator::Li()和EstimateDirect()判断Medium的方式
  14. java digestutils.md5hex_linux下md5sum和DigestUtils.md5Hex的关系 博客分类: java
  15. 三菱RS指令无协议通信功能概述
  16. appfuse上手(选取刘文涛blog)
  17. 第二章 MATLAB数据与矩阵
  18. 不干正事儿系列文章1:Sonic Pi简单应用
  19. 大流量的网站如何解决访问量的问题
  20. ctf的web题目php,32C3 CTF 两个Web题目的Writeup

热门文章

  1. win7系统关闭蓝牙服务器,win7系统蓝牙服务被禁用的解决方法
  2. 如何使用计算机自带的刻录软件,Win10电脑如何刻录光盘?利用win10自带刻录工具来刻录DVD光盘教程...
  3. python web flask 插件_Python WEB框架之Flask
  4. TM4C123GLaunchPad教程四_时钟配置
  5. Drools——什么是规则
  6. SpringBoot 使用freemarker 处理文档,找不到文件位置(报错:basePackagePath=““ /* relatively to resourceLoaderClass pkg)
  7. 快速缓解眼睛疲劳的穴位按摩
  8. excel表格自动填充为汉字拼音首字母
  9. [每日一氵] openCV drawMatches 函数中 flag 用法
  10. “老赖”罗永浩:“首席忽悠官”,发布黑科技鲨纹技术