接口测试(一)基础

简介: 接口测试(一)基础

接口测试概述


要进行接口测试,我们肯定要了解什么是接口?什么是接口测试?为什么要进行接口测试?HTTP协议等等知识。


什么是接口


是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作的细节


什么是接口测试


接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系,其中接口协议分为:HTTP,WebServices,Dubbo,Thrift,Socket类型


为什么要进行接口测试


接口测试实施在多系统的平台架构下,有着极为高效的成本收益比


1.节约了测试成本


根据数据模型推算,底层的一个程序bug可能引发UI层的8个左右的bug,而且底层的bug更容易引起全网的死机,接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案


2.接口测试门槛较低


接口测试是站在用户的角度对系统接口进行全面高效持续的检测

 

3.效益更高


将接口测试实现为自动化和持续集成,当系统复杂度和体积越大,接口测试的成本就越低,相对应的,效率产出就越高


HTTP协议


HTTP协议是用于从服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少,它不仅保证计算机正确快速的传输超文本协议,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。


HTTP特点


1.无连接


无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,既断开连接,采用这种方式可以节省传输时间。


2.媒体独立


这意味着,只要客户端和服务端知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的MIME


3.无状态


HTTP协议是无状态的,无状态是指协议对于事务处理没有记忆能力,如果服务器不需要先前信息,那么它的应答就比较快,但是缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,此时可以设置缓冲

 

HTTP与HTTPS


HTTPS简单来讲是HTTP的安全版,既HTTP下加入了ssl层,简称HTTPS

HTTPS的安全基础是SSL,因此通过它传输的内容都是经过SSL加密的,它的主要作用分为两种:

1.建立一个信息安全通道,来保证数据传输的安全

2.确认网站的真实性,凡是使用https的网站,都可以点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构颁发的安全签章来查询

 

Request


Request 既请求,由客户端向服务端发出,可以将Request划分为四部分内容

Request Method:请求方法

Request URL:请求链接

Request Headers:请求头

Request Body:请求体


Request Method


请求方法。常见的有两种类型,GET和POST

GET用于信息获取,而且应该是安全的和幂等的(幂等的意思就是一个操作不会修改状态信息,并且每次操作的时候都返回同样的结果)从发送请求的角度,GET请求相当于我们在数据库中做了查询的操作,这样的操作不影响数据库本身的数据。

POST表示可能会修改服务器上资源的请求,也想当于在数据库中做了修改的操作,会影响数据库本身的数据。

除了常规的GET,POST请求,另外还有一些请求方式,如HEAD,PUT,DELETE等

GET            并返回实体主体

POST         向指定资源提交数据进行处理请求,数据被包含在请求体中

PUT            从客户端向服务器传送的数据取代指定的文档的内容,相当于更新

PATCH        对PUT方法的补充,用来对已知资源进行局部更新

DELETE     请求服务器删除指定的页面

HEAD         类似于GET请求,只不过返回的响应中没有具体的请求,用于获取报头

CONNECt   HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

OPTIONS   允许客户端查看服务器的性能

TRACE       回显服务器收到的请求,主要用于测试或诊断


Request Header


请求头,用来说明服务器要使用的附加信息,比较重要的有Cookie,Referer,User-Agent等

Accept:请求报头域,用于指定客户端可接受哪些类型的信息

Accept-Language:指定客户端可接受的语言类型

Accept-Encoding:指定客户端可接受的内容编码

Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置,从HTTP1.1开始,Request必须包含此内容

Cookie:也常用Cookies,是网站为了辨别用户进行Session跟踪而储存在用户本地的数据,Cookies的主要功能是维持当前访问会话

Referer:此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计,做防盗链处理等

User-Agent:简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本,浏览器及版本等信息,在做爬虫时加上此信息可以伪装为浏览器,如果不加很可能会被识别为爬虫

content-type:既Internet Media Type,互联网媒体类型,也叫做MIME类型,在HTTP协议消息头中,使用它来表示具体请求中的媒体类型信息,例如application/x-www-form-urlencoded表示表单数据,text/html代表HTML格式,image/gif代表GIF图片,application/json代表json类型

 

Request Body


既请求体,一般用于POST请求中,主要定义向服务器提交的数据类型,而对于GET请求Request Body则为空

比如在登录之前我们填写了用户名和密码信息,提交时这些信息就会以Form Data的形式提交给服务器,此时注意Request Headers中指定了connect-Type为application/x-www-form-urlencoded,只有设置connect-Type为application/x-www-form-urlencoded才会以Form Data形式提交,另外我们可以将Connect-Type设置为application/json来提交Json数据,或者设置为multipart/form-data来上传文件

常用Connect-Type和POST提交数据方式的关系

Connect-Type 提交数据方式

application/x-www-form-urlencoded 表单方式提交

multipart/form-data 表单文件上传提交

application/json 序列化Json数据提交

text/xml XML数据提交

application/x-www-form-urlencode与multipart/form-data的区别

在没有type=file时候,用默认的application/x-www-form-urlencode就行

在有type=file时,要用multipart/form-data编码方式,浏览器会把表单以控件为单位分割,并且为每个部分加上Content-Disposition(from-data或file),Content-Type(默认为text/plain)


Response


Response,既响应,由服务端返回给客户端,Response可以划分为三部分

Response Status Code

Response Headers

Response Body


Response Status Code


响应状态码,此状态码表示了服务器的响应状态,如200则表示服务器正常响应,404则表示页面未找到,500则表示服务器内部发生错误,常用状态码如下

200  成功  服务器已成功处理了请求

201  已创建  请求成功并且服务器创建了新的资源

301  永久移动  请求的网页已永久移动到新位置,既永久重定向

302  临时移动  请求的网页暂时跳转到其他页面,既暂时重定向

400  错误请求  服务器无法解析该请求

401  未授权  请求没有进行身份验证或验证未通过

403  禁止访问  服务器拒绝此请求

404  未找到  服务器找不到请求的网页

500  服务器内部错误  服务器遇到错误,无法完成请求

501  未实现  服务器不具备完成此请求的功能

502  错误网关  服务器作为网关或代理,从上游服务器收到无效响应


Response Headers


响应头,其中包含了服务器对请求的应答信息,如Content-Type,Server,Set-Cookie等,下面将一些常用的头信息说明如下

Date:标明Response产生的时间

Last-Modified:指定资源的最后修改时间

Content-Encoding:指定Response的编码

server:包含了服务器的信息,名称,版本号等

Content-Type:文档类型,指定了返回的数据类型是什么,如text/html则返回HTML文档,application/x-javascript则代表返回javascript文件,image/jpeg则返回了图片

Set-Cookies:设置Cookie,Response Headers中的Set-Cookies既告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies内容

Expires,指定Response的过期时间,使用它可以控制代理服务器或者浏览器将内容更新到缓冲中,如果在次访问时,直接从缓冲中加载,降低服务器负载,缩短加载时间


Response Body


既响应体,响应的正文数据都是在响应体中,如请求一个网页,它的响应体就是网页HTML代码,请求一张图片,它的响应体就是图片的二进制数据,一般在接口的响应内容大多都是json数据内容


Json


json数据类型是做接口自动化必须要知道的,后期整理接口自动化文档时在详细说

json是一种轻量级的数据交换格式,它独立于语言和平台,json解析器和json库支持不同的编程语言,json具有自我描述性,很容易理解,目前大多数接口返回的数据类型为json‘

json数据解析

python中可以使用json模块来对json数据进行编解码,它包含了两个方法

json.dumps()将python数据转化为json数据

json.loads()将json数据转化为python数据类型


看两段代码

import json
data = {'id': 3, 'name': 'zouzou', 'pwd': '77'}
print(type(data))
json_data = json.dumps(data)
print(type(json_data))
print(json_data)
执行结果:
<class 'dict'>
<class 'str'>
{"id": 3, "name": "zouzou", "pwd": "77"}
import json
#外面必须是单引号
json_data='{"id":3,"name":"zouzou","pwd":"77"}'
print(type(json_data))
data=json.loads(json_data)
print(type(data))
print(data)
执行结果:
<class 'str'>
<class 'dict'>
{'id': 3, 'name': 'zouzou', 'pwd': '77'}

相关文章
|
12月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1097 23
|
9月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1365 24
|
9月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
387 2
|
11月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
833 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
11月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
595 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
10月前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
|
10月前
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
|
12月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
12月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。