精华内容
下载资源
问答
  • api 接口响应数据格式有哪些
    千次阅读
    2020-08-11 16:30:37

    api接口响应数据格式有:
    1.基本格式
    2.对象格式
    3.数组格式
    4.分页格式

    基本格式返回的数据
    {
    “code”:200,
    “msg”:“登录成功”,
    }

    对象格式,返回
    {
    “code”:200,
    “msg”:“登录成功”,
    “data”:{
    “id”:100,
    “name”:“多测师”,
    “age”:4,
    “sex”:0
    }
    }

    数组格式,返回是有页数,每页数据条数,数据列表
    {
    “code”:200,
    “msg”:“登录成功”,
    “data”:[
    {
    “id”:1,
    “name”:“深圳多测师”,
    “age”:4
    },
    {
    “id”:2,
    “name”:“广州多测师”,
    “age”:2
    },
    {
    “id”:3,
    “name”:“上海多测师”,
    “age”:1
    }
    ]
    }

    分页列表格式,返回
    {
    “code”:100,
    “msg”:“ok”,
    “data”:{
    “nowPage”:1,
    “totalPage”:10,
    “list”:[
    {
    “id”:1,
    “name”:“深圳多测师”,
    “age”:4
    },
    {
    “id”:1,
    “name”:“上海多测师”,
    “age”:1
    }
    ]
    }
    }

    更多相关内容
  • 接口响应状态码(大全):

    千次阅读 2020-05-04 16:29:55
    (加粗的为常见的状态码) 1.表示临时响应并需要请求者继续执行操作: 100 ==(继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的 第一部分,正在等待其余部分。 101 == (切换协议) 请求者已要求...

    (加粗的为常见的状态码)
    1.表示临时响应并需要请求者继续执行操作:
    100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的
    第一部分,正在等待其余部分。
    101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

    2.表示成功处理了请求的状态代码:
    200 (请求成功),服务器已成功处理了请求。 通常,这表示服务器提供了请求的网
    页。
    201 (已创建) 请求成功并且服务器创建了新的资源。
    202 (已接受) 服务器已接受请求,但尚未处理。
    203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
    204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
    205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
    206 (部分内容) 服务器成功处理了部分 GET 请求。

    3.表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向:
    300 (多种选择) 针对请求,服务器可执行多种操作。
    301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET
    或 HEAD 请求的响应)时,会自动将请求者转到新位置。**
    302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用
    原有位置来进行以后的请求。
    303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响
    应时,服务器返回此代码。
    304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,
    不会返回网页内容。
    305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响
    应,还表示请求者应使用代理。
    307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使
    用原有位置来进行以后的请求。

    4.这些状态代码表示请求可能出错,妨碍了服务器的处理:
    400 (错误请求) 服务器不理解请求的语法。
    401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此
    响应。
    403 (禁止) 服务器拒绝请求。
    404 (未找到) 服务器找不到请求的网页。**
    405 (方法禁用) 禁用请求中指定的方法。
    406 (不接受) 无法使用请求的内容特性响应请求的网页。
    407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授
    权使用代理。
    408 (请求超时) 服务器等候请求时发生超时。
    409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲
    突的信息。
    410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
    411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
    412 (未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件。
    413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的
    处理能力。
    414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
    415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
    416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此
    状态代码。
    417 (未满足期望值) 服务器未满足”期望”请求标头字段的要求。

    5.一般是服务器问题:
    500 (服务器内部错误) 服务器遇到错误,无法完成请求。**
    501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求
    方法时可能会返回此代码。
    502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
    503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这
    只是暂时状态。
    504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
    505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

    展开全文
  • 什么是接口 接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一...

    一.什么是接口

    接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,我们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连接,而测试眼中的接口是一种协议(对接口的功能的一种定义)。

    二.接口的种类和分类

    主要包含三种测试:

    1. Web接口测试,
    2. 应用程序接口测试,
    3. 数据库测试。

    外部接口,内部接口:上层服务于下层服务,同级服务。常见的接口分类http:get,post,delete,put

    系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。

    程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

    实际上意义就是UI界面到数据库之间,数据流经过的所有过程。

    LAMP(Linux Apache MySQL PHP)/LNMP(Linux Nginx MySQL PHP):只有 Web 服务器,没有应用服务器。

    Web 浏览器 到 Web 服务器: Web 接口测试,测试 请求和响应。

    Web 服务器 到 数据库服务器:应用接口测试,测试 PHP。

    Linux / Windows + Java / Asp.net(C#) + Apache/Nginx + Tomcat/IIS + MySQL/Oracle/SQL server

    Web 浏览器 到 Web 服务器: Web 接口测试,测试 请求和响应。

    Web 服务器 到 应用服务器:契约服务,WebService,JavaAPI,WebAPI,WCF,.net Remoting:测试 Java 或者 C# 处理业务逻辑(JavaEE/ ASP.NET MVC),通俗讲测试 Service。

    应用服务器 到 数据库服务器:数据处理服务,测试 Java 或者 C# 处理数据,把数据读取到数据库。

    我们需要关注的是 Web 接口测试。

    Web 接口测试的方法:

    Python 或者 Java,C# 编程,触发请求,读取响应,分析得到的响应数据进行与源数据的对比。

    用工具:apipost 、 jmeter或者postman(不推荐)

    apipost 是一款国产的接口文档测试和接口文档生成工具,现在已经提供了 Windows、MacOS 和Linux 的独立安装版本。接下来用Windows的版本来进行安装和使用。

    三. apipost 的安装

    直接去官网下载安装包http://www.apipost.cn

    3731da04282fbc0b53a7f90497646dda.png

    点击立即使用就可以下载了

    69d506da7435eef75eb73bd9668decda.png

    根据自己的电脑选择对应的版本进行下载

    8e200d5705de92d8b825ecea19ac06fa.png

    然后运行安装

    855b56b43eb59f448c1985f2a98e2a56.png

    d626eb4a29cf1eab48ee619304cd477c.png

    777f423c24eaa5df5f38f77e2c76c2d9.png

    6347fcb9cefb2b18e62ef9b8f87e2894.png

    46098fc8fab821567b678868f6919023.png

    22756efc4314ffd9768f3e36d0016e23.png

    e55fb9be9f90344bc78831f67a2b9e1e.png

    一直点击下一步就可以了。安装好了之后打开apipost。使用邮箱号注册一个账号就可以使用了。

    6bfe00770af3d66d8fd622f2b8a61e14.png

    登录之后需要先创建一个项目。

    71480bac6574e8df613718c2af08610e.png

    创建好了之后就可以进行接口测试了

    我们在APIs里面新建接口,然后选择请求方法,url,需要传递的参数。然后点击发送,就实现了一个简单的接口测试,现在我们一百度为例子。

    新建一个接口

    98e9bf6c05487c04181c7bfcad97ff40.png

    编辑名称为百度,请求方法为get,请求url为http://www.baidu.com

    8768dfb47b627283e8dc16f652c47a5d.png

    点击请求发送,响应成功。

    f027f8b5639f75638f5e0590c6f021c6.png

    在试着发送一个post请求。接口名称登录,请求方法post,url本地测试地址,传递的参数

    8f083d50ffcbc6277a23835221eac289.png

    请求发送,响应成功。

    d17e31e3f0e615e85ec304f4f180abfc.png

    这就是如何使用apipost进行接口测试的过程了。

    四.请求方法和响应码

    get请求,post请求的区别:

      1、GET使用URL或Cookie传参。而POST将数据放在BODY中。

      2、GET的URL会有长度上的限制,则POST的数据则可以非常大。

      3、POST比GET安全,因为数据在地址栏上不可见。

      4、一般get请求用来获取数据,post请求用来发送数据。

      其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。(唯一区别就是这一点,上面3点区别都是不准确的)

      http状态码:

      1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。

      2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。

      3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。

      4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。

    五。apipost下载地址

    直接去官网下载安装包http://www.apipost.cn

    展开全文
  • 一、背景在开发联调阶段发现一个接口响应时间特别长,经常超时,囧…本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。二、步骤2.1 定位定位性能瓶颈有两个思路,一个是通过...

    一、背景

    在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧…

    本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。

    二、步骤

    2.1 定位

    定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。

    2.1.1 工具监控

    就工具而言,推荐使用 arthas ,用到的是 trace 命令

    具体安装步骤很简单,大家自行研究。

    我的使用步骤是,先最终待研究的函数的最外层:

    trace com.xxx.service.impl.AServiceImpl refresh

    其中耗时最多的子函数会被标红色

    Affect(class-cnt:2 , method-cnt:2) cost in 525 ms.

    `---ts=2020-0X-0Y 13:33:18;thread_name=DubboServerHandler-127.0.0.1:20880-thread-36;id=24e;is_daemon=true;priority=5;TCCL=com.mmm.WWWClassLoader@4362d7df

    `---[1761.834357ms] com.xxx.service.impl.AServiceImpl$$EnhancerBySpringCGLIB$$e3cd7543:refresh()

    +---[0.017066ms] com.xxx.service.impl.AServiceImpl$$EnhancerBySpringCGLIB$$e3cd7543:$jacocoInit()

    `---[1761.00347ms] org.springframework.cglib.proxy.MethodInterceptor:intercept()

    `---[1757.647111ms] com.xxx.service.impl.AdServiceImpl:refresh()

    +---[0.006629ms] com.xxx.biz.yyy.service.impl.AServiceImpl:$jacocoInit()

    +---[0.004073ms] java.util.Collections:singletonList()

    +---[1709.203302ms] com.yyy.service.impl.AServiceImpl:refreshSomeThings()

    `---[48.135719ms] com.yzzzz.service.impl.AServiceImpl:createSurvey()

    继续再 trace 耗时最多的子函数。

    trace com.yyy.service.impl.AServiceImpl refreshSomeThings

    最终定位到最影响耗时的函数上,继续往下跟。

    最后发现造成性能瓶颈的函数是一个网络请求,单次请求大概 100多毫秒。

    为了避免调用的数据量太大,项目中采用分批调用的方式,但是每个批次太小,导致请求次数过多。

    假设请求 N 次(如 10次),每次请求 M毫秒(如 200ms),总耗时就是 N*M (2000)毫秒。

    2.1.2 猜想

    如果开发经验足够丰富,大致可以猜出哪些接口可能存在性能问题。

    最常见的有:

    慢 SQL 会是性能瓶颈,主要原因是没有命中索引。

    发送远程数据请求(RPC 远程调用、HTTP 远程调用)。

    I/O 操作等。

    然后审查一下自己的代码发现 SQL 查询部分都可以命中索引,调用链路上有一个函数最终会调用 HTTP 请求,而且是在一个循环里。

    因此最有可能成为造成接口延时的是底层依赖的 HTTP 请求。

    2.2 解决

    既然 HTTP 请求是性能瓶颈,那么要尽量减少请求,或者让请求由串行改为多线程并发/并行。

    减少网络请求的次数,可以将多个请求合并成一个批量接口(或者增加批量请求的每个批次的大小)。

    这里的批次甚至可以使用动态配置,根据情况动态修改。

    将串行改为并行可以使用 CompletableFuture 来实现,具体参见:《Java 数据分批调用接口的正确姿势》

    最终一个接口的响应时间从1 s - 2 s降低到了 200 ms 以内。

    3、总结

    很多人不愿意学习 arthas ,如果不去学习不去了解,遇到可以用上的场景想不起来去用。

    另外大家可以积累下开发过程中常见的性能瓶颈的原因,以便未来遇到性能瓶颈是可以快速排查和解决问题。

    最后大家在开发阶段或测试阶段,多看错误日志,多关注接口的响应时长等,尽早排除问题,尽早做优化。

    希望本文对大家

    b739ec46bb5c46d9c0aa4ce35ba1ea56.png

    关于找一找教程网

    本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

    本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

    [将一个接口响应时间从2s优化到 200ms以内的一个案例]http://www.zyiz.net/tech/detail-112640.html

    赞(0)

    共有

    条评论

    网友评论

    展开全文
  • 首先要分析接口响应慢的具体原因,列出一些常见原因 是不是资源层面的瓶颈(服务器性能问题) 是不是缓存没添加,如果加了,是不是热点数据导致负载不均衡 是不是有依赖于第三方接口 是不是接口涉及业务太多,导致...
  • 如何快速定位接口响应慢问题

    千次阅读 2021-03-24 17:25:59
    如何快速定位接口响应慢问题 一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位...
  • 常见接口状态码状态码

    千次阅读 2021-12-11 21:06:07
    工作中在请求后端接口的时候有时因为某些原因会返回一些错误状态码,经常记不清楚各状态码表示什么意思,所以特意梳理出来记录一下。 常见的状态码主要有2、3、4、5开头,分类整理如下: 2开头 一般表示请求成功 ...
  • 使用Kibana分析接口响应时间

    千次阅读 2020-12-18 13:57:41
    一、背景 通常在Web端查看接口时间可能会受网络的影响,不能...[2020-12-10 11:27:01] [-] [info] [application] [-] [-] [api_run_time] [接口响应时间] [{"api":"/index/test","took_s":"0.01","memory_used":"8.05"}
  • 接口测试过程中经常会根据返回的状态码来判断这个接口是否正常,我们常见可能就是100,200,400,500,但其中也有很多不是经常遇到的,我就在平时遇到加网上搜索一起整理后,希望与大家分享学习!
  • 先了解一下Fiddler Everywhere的基本用法,然后再看一下它的AutoResponder功能。AutoResponder主要用来mock接口的数据,在web调试的时候非常方便...
  • 常见接口协议:HTTP(超文本传输协议)、HTTPS(安全超文本传输协议)、FTP(文件传输协议)、TCP(网络控制协议)、IP(互联网协议)、UDP(用户数据协议)。 HTTP协议响应码: 1XX:信息响应类,表示接收到...
  • 常见接口报错及其意思

    千次阅读 2020-05-14 14:12:01
    常见接口报错及其意思 case 400:error.message = ‘请求参数错误’; case 401: error.message = ‘未授权,请登录’; case 403: error.message = ‘跨域拒绝访问’; case 404: error.message = `请求地址出错: ...
  • 1.响应行:响应数据的第一行。其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述。 2.响应头:第二行开始,格式为键值对的形式。 3.响应体:最后一部分。存放响应数据。 状态码 英文描述 解释 ...
  • Http协议常见响应

    千次阅读 2019-12-10 09:29:15
    1)1xx--临时响应:表示临时响应并需要请求者继续执行操作的状态代码 100:(继续) 请求者应当继续提出请求,服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101:(切换协议) 请求者已要求服务器切换协议...
  • 接口测试常见问题

    万次阅读 2021-10-09 22:42:52
    接口测试常见问题 原文地址:接口测试常见问题 接口测试需要考虑的点/如何设计接口测试的用例? 接口测试用例编写除了使用功能测试中最基本的等价类,边界值,因果图,错误推测,场景设计等方法外,还要考虑一些...
  • 接口测试常见面试题总结

    千次阅读 2020-12-08 18:03:07
    1、目前市面上流行的接口大多有哪几种协议的接口? 答:http https dubbo rpc 等即可。 2、接口的请求方式有哪几种? 答:get post put delete head Trace opions 等,大多以 get 和 post 请求为主 3、为什么要做...
  • 常见接口类型

    千次阅读 2020-08-05 10:55:22
    常见接口类型 HTTP接口 通过http协议传输的接口,可以传输文本表单数据,也可以传输json类型的对象数据或XML类型的数据 RPC RPC:远程方法调用,随着分布式系统的出现,当你需要调用部署到其他服务器上的方法时,...
  • HTTP 接口响应数据解析

    千次阅读 2018-04-10 11:33:17
    接口访问,返回的数据一般是json格式。常见场景:对json格式数据的解析,取某个字段的值,做相应的判断。任务:假设刚部署出来的site的域名url为 https://qa-ultra-rds-96x.bbpd.io,现在检验version字段是否与预期...
  • Jmeter_(一)接口响应码断言处理

    千次阅读 2018-04-09 00:02:00
    在写接口自动化脚本中,常常遇到需要断言接口响应码,根据我目前经验有遇到以下三种情况,在这三种情况下采取不同的断言处理方式: (1)接口响应码在response Header中,类似相面红色框中标注出来的Result-Code ...
  • 接口请求的六种常见方式

    千次阅读 2020-11-26 18:35:11
    接口请求的六种常见方式: 1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体) 2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改 3、Put 向...
  • Postman常见接口的使用

    千次阅读 2022-03-21 11:13:23
    Postman常见接口的使用
  • 常见接口请求类型与错误码

    千次阅读 2019-09-15 19:59:56
    本节是基础篇第三节,这节跟大家简单介绍下日常性能脚本调试过程中,基于http或https协议的一些接口类型(GET请求和POST请求)。 一、GET类型 一般都是通过Form表单提交,或者直接在url后面通过“?”连接入参...
  • 接口测试常见问题及答案

    千次阅读 2021-10-22 14:15:30
    最后,如果第三接口还有准备好,我们也不会影响测试进度,会对第三方的接口进行模拟返回,可以使用fiddler的自动响应器来模拟接口 11、jenkins是如何拉gitlab的代码的,原理是什么? jenkins是通过配置系统配置和任务配置...
  • 测试面试中的常见10道接口面试题

    千次阅读 2021-04-08 21:48:11
    1.测试面试中的常见10道接口面试题(仅供参考) 一、接口测试一般是什么时候做 这里是引用在功能或者是接口有变动,或者发布了新版本的时候,在测功能前的时候都是需要进行我们这个接口测试的。 一般做接口测试是有...
  • 接口请求的六种常见方式: 1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体) 2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改 3、Put ...
  • 性能基础之浅谈常见接口性能压测

    万次阅读 2018-09-25 11:27:50
    随着主流系统的服务化设计,特别是SOA架构和微服务架构的流行,接口已经成为各系统间通信的桥梁。所以,接口的性能压测也变得越来越重要。 SOA(Server OrientedArchitecture,面向服务架构)是目前通用的组件模型。...
  • 常见的API接口管理工具

    万次阅读 热门讨论 2018-11-03 17:34:35
    1、Postman ...幸运的是,Postman可以将调试过的请求保存到Collection中。形成的Collection就可以作为一份简单有效且...对QA来说,使用Postman进行接口测试和接口文档维护是同一件事情,测试即文档,维护成本也很低...
  • 1.首先确认前端调用方式是get还是post,后台接口相应响应接口也要对应get或post 2.其次参数是否对应得上,前端封装的参数格式是否符合后台接口接收参数的定义(如下方的参数是否加“data:{}”层) 3.一种调用接口...
  • 前言:最近线上环境某个接口服务响应时间偏长,导致用户体验超差,那平时该怎么快速的排查这类问题呢?①、为代码添加上详细的打印日志; 不建议 ,一是线上环境,没法随便的重新部署更换了详细日志的代码,二是 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 228,247
精华内容 91,298
关键字:

常见接口响应