RESTClient

【经验分享|有效学习】接口测试常见接口类型?

前提是你 提交于 2020-12-20 17:44:38
常见接口类型 1.根据协议区分 1、webService接口:是走soap协议通过http传输请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有Soapul、jmeter、loadrunner等; 2、http接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等; http接口与WebService接口的区别: 1,使用的协议有点区别webservice用的soap协议 http用的是http协议 2,传输数据的报文格式不一样: webservice用的xm1格式 http用的比较多的是htm1格式,json格式,xm1格式web端一般用的都是htm1格式,App端用的都是json格式3,共同点都需要用到工具去进行测试 常用的接口测试工具:soapui ,JMeter ,postman ⒉.根据功能区分: 2.根据功能区分: 同步接口 同步接口我们可以理解,你们去买票,你付款,相当你发送一个请求,那么你回立马要求他给你一张票,给你一张票相当于返回数据,那么同步接口有实时性,你发送请求,需要他在有限的时间内立马返回数据

【实战问题】【15】报错java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast t...

≡放荡痞女 提交于 2020-12-20 07:11:08
场景重现: 调用封装好的接口,返回的数据类型是List,debug可以看到有返回值。但是进行到对list进行操作的那步,报错了(java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to xx)。原来list中的数据是LinkedTreeMap 格式的,并没有转换成对应的实体类。网上查的方法很多是解决json格式字符串转成实体类,而我因为接收到的就是List数据,所以还是想转成能使用的List数据。 写在前面: 尝试多种方法没有解决问题,最终是改了封装的接口,数据格式从源头就错了 原因: 泛型<T>不能强转为List,会有一系列问题 排查历程: (1)最开始我的代码 获取到了List,取出状态有效的数据。如此简单,开心。 // 主要代码 List<UserEntity> userList = this .commentService.getUserList(userId); // 获取数据的接口 List<UserEntity> newList = list.stream().filter(i -> i.getStatus() == 1).collect(Collectors.toList()); // 报错 然后就报错了,返回的数据格式是这样的: (2

ES 常用java api

空扰寡人 提交于 2020-12-18 02:45:24
java rest client 有两种:   1、Java Low Level REST Client :用于Elasticsearch的官方低层客户端。它允许通过http与Elasticsearch集群通信。叶子请求编组,响应反编组给用户。它兼容所有的Elasticsearch版本。   2、Java High Level REST Client :Elasticsearch的官方高级客户端。它基于底层客户端,公开API特定的方法,处理请求编组和响应反编组。 一、Java Low Level REST Client   1、先引入jar包   < dependency > < groupId > org.elasticsearch.client </ groupId > < artifactId > elasticsearch-rest-client </ artifactId > < version > 6.6.0 </ version > </ dependency >   2、编写代码 public class LowLevelRestClientTest { // RequestOptions类包含请求的一些部分,这些部分应该在同一个应用程序中的多个请求之间共享。你可以创建一个单实例,并在所有请求之间共享: private static final

SpringCloud之Ribbon

喜你入骨 提交于 2020-11-21 13:33:45
一:Ribbon是什么?    Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。 二:LB方案分类     目前主流的LB方案可分成两类:一种是集中式LB, 即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5, 也可以是软件,如nginx), 由该设施负责把访问请求通过某种策略转发至服务的提供方;另一种是进程内LB,将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。Ribbon就属于后者,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。 三:Ribbon的主要组件与工作流程   Ribbon的核心组件(均为接口类型)有以下几个:   ServerList:用于获取地址列表。它既可以是静态的(提供一组固定的地址),也可以是动态的(从注册中心中定期查询地址列表)。   ServerListFilter

Elasticsearch中mapping值得注意的一些小细节

六月ゝ 毕业季﹏ 提交于 2020-10-12 23:58:26
简介 在Elasticsearch中mapping有很多可以配置的地方,但是使用多了就会发现,一般情况有关mapping最常用、也最实用的就简单的几个需要注意的地方。 下面就简单的介绍一下关于这些mapping中值得注意的地方。 当然,如果想要了解更多关于mapping的知识,可以参考后面给的参考链接。 添加mapping # 添加为索引添加mapping curl -X PUT http://localhost:9200/index-name/_mapping # 查看索引的mapping curl -X GET http://localhost:9200/index-name/_mapping 下面是添加mapping的body部分: { "mappings": { "dynamic": "strict", "properties": { "title": { "type": "text", "norms":false, "doc_values":false }, "name": { "type": "keyword" }, "attach": { "type": "text" } } } } 在mapping中,dynamic参数建议设置为"strict",这样当添加的文档中有mapping中没有的字段就可以获取到异常。当然,如果你只想有多的字段也无所谓

搜索引擎ElasticSearch入门

人走茶凉 提交于 2020-10-07 04:25:11
前言 最近项目上需要用到搜索引擎,由于之前自己没有了解过,所以整理了一下搜索引擎的相关概念知识。 正文 想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据来说,肯定就没必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便存储和检索,可以快速地储存、搜索和分析海量数据。搜索引擎有很多种,我这里主要讲两种比较流行的搜索引擎框架 Elasticsearch 和 Lucene 搜索引擎。 一、搜索引擎实现核心 Lucene/Elasticsearch 实现快速搜索的核心就是倒排索引,Lucene/Elasticsearch 就是尽量将磁盘里的东西搬进内存,减少磁盘随机读取次数(同时也利用磁盘顺序读特性),结合各种压缩算法,高效使用内存,从而达到快速搜索的特性。 核心概念 : https://www.cnblogs.com/valor-xh/p/6206042.html ​ https://blog.csdn.net/sinat_42338962/article/details/85227902 二、Lucene搜索引擎 **百度百科:**是 Apache 软件基金会4 Jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包(实际就是一个 Jar 包)

了解REST:动词,错误代码和身份验证

☆樱花仙子☆ 提交于 2020-10-04 03:49:26
问题: I am looking for a way to wrap APIs around default functions in my PHP-based web applications, databases and CMSs. 我正在寻找一种在基于PHP的Web应用程序,数据库和CMS中将API围绕默认功能包装的方法。 I have looked around and found several "skeleton" frameworks. 我环顾四周,发现了几个“骨架”框架。 In addition to the answers in my question, there is Tonic , a REST framework I like because it is very lightweight. 除了我的问题的答案外,还有 Tonic ,我喜欢它是REST框架,因为它非常轻巧。 I like REST the best for its simplicity, and would like to create an API architecture based on it. 我最喜欢REST的原因在于它的简单性,并希望基于它创建一个API架构。 I'm trying to get my head around the basic principles and

这样设置 VS Code,每天少加班 1 小时

∥☆過路亽.° 提交于 2020-09-27 10:40:31
点击上方“ 逆锋起笔 ”, 公众号回复 pdf 领取大佬们推荐的学习资料 来源: 做工程师不做码农 https://segmentfault.com/a/1190000022046327 代码编辑器很多,有些是免费的,有些是付费的。其中最喜欢的代码编辑器是 Visual Studio Code。它是免费的,并具有强大的功能,我陆续抛弃了Atom、Sublime Text以及也很强大的WebStorm。 今天,我将分享我最喜欢的代码编辑器设置,用于我的 Web 开发。我将从代码编辑器的外观开始。毕竟外观颜值很重要。 🎨 主题 我最常用的 VS Code 主题是Snazzy Operator,目前正在使用。 此主题基于 hyper-snazzy 并针对与 Operator Mono 字体一起使用进行了优化。我喜欢 😍 这个主题。 ⭐ 我之前使用过的其他一些主题: Oceanic Next - 我使用了 Oceanic Next (dimmed bg) emedy - 我使用了 Remedy Dark (straight) ✒ 字体 对我的代码编辑器来说,另一个重要的事情是,我用于代码编辑器的字体是 JetBrains Mono。这是带有连字支持的免费字体。 连字是一种新的字体格式,支持符号装饰,而不是 = > 、 < = 。 在使用 JetBrains Mono 之前,我使用了

Elasticsearch常用查询过滤接口与值得注意的问题

纵饮孤独 提交于 2020-08-14 11:20:19
Elasticsearch常用查询过滤接口与值得注意的问题 简介 本文将介绍一些ES查询过滤的接口和一些值得问题。 在ES中主要是查询,并且只有在bool查询中才有过滤上下文,当然聚合函数中也可能出现过滤上下文。 过滤不计算相关性评分,并且能够缓存,所以应该优先考虑过滤。 具体的做法就是使用bool查询的filter,后面会详细介绍。 关于查询过滤的rest api介绍,可以参考 Elasticsearch查询过滤解惑 数据准备bulk 首先,我们使用bulk添加一些测试数据: public class BulkTest { private static final String[] homes = {"河北省", "山西省", "辽宁省", "吉林省", "江苏省", "浙江省", "安徽省", "福建省", "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "海南省", "四川省", "贵州省", "云南省", "陕西省", "甘肃省", "青海省", "黑龙江省", "台湾省", "北京市", "天津市", "上海市", "重庆市", "广西壮族自治区", "西藏自治区", "宁夏回族自治区", "新疆维吾尔自治区", "内蒙古自治区", "香港特别行政区", "澳门特别行政区"}; private RestHighLevelClient

问题总结(事后诸葛亮和组员交换事宜)

血红的双手。 提交于 2020-08-09 14:20:39
一、设想和目标 1、我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题(按特性来定义): ①交互性:用户不仅仅只是能够发表帖子、点赞、评论,还可以使用时间轴记录生活,供个人回忆。查看地图,获取热点区域。 ②直观性:地图的深浅颜色快速获取最活跃的周边信息、生活分享或美食评价。不再迷惘于广大的城市,而没有目标。 ③单纯性:追求更为单纯的分享,而不是参与商业性的带货行为。不必在浏览他人分享时,让广告映入眼帘。 ④隐私性:提供匿名发帖、匿名评论的功能,无需创建多个小号来宣泄烦恼,减少多个账号切换的繁琐。 2、我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?) 已实现的功能如下(按时间交付但未达到目标): ①地图模块:地图气泡图实现了福建省区块,虽暂未完成其他省份,但已大致出现气泡图的雏形,之后不断扩宽至全国修改样式即可。 ②帖子模块:能够完成用户的看帖、发帖、删帖、交互(点赞、评论、TAG) ③时间轴模块:能够对时间轴进行添加、筛选、删除 ④个人空间模块:对个人空间的信息进行修改和筛选。能够看到关注列表,进入别人的个人空间。 3、有什么经验教训? 如果历史重来一遍, 我们会做什么改进? ①任务分的粒度太大了,在实现过程中有很多的细节没有考虑到,也导致燃尽图是中间突起,后端急速下降的状态。