接口测试知识点(接口测试基础知识)

4747 321 2022-11-20


本文目录一览:

接口测试的测试点有哪些

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

测试的策略:

接口测试也是属于功能测试,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:

评审测试接口文档(需求文档)

根据接口文档编写测试用例(用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法)

执行测试,查看不同的参数请求,接口的返回的数据是否达到预期

那么设计测试用例时我们主要考虑如下几个方面:

功能测试:

接口的功能是否正确实现了

接口是否按照设计文档中来实现(比如username参数写为了user,那么这就不符合,因为接口文档在整个开发中都需要使用,所以接口实际的设计要与接口设计文档中保持一致)

兼容性测试: 比如说今天接口进行了调整,但是前端没有进行变更,这时候需要验证新的接口是否满足旧的调用方式

错误码测试: 通用的错误码与业务错误码是否能够清晰的说明调用问题,错误码是否能够尽可能的全的覆盖所有的情况

返回值测试: 返回值除了内容需要是正确的,还需要类型也是正确的,保证调用方拿到这些参数能够正确的解析

参数边界值、等价类测试

json格式测试: 通常我们的接口一般设计的都是传递json串,那么就需要去测试 如果传递非json的情况,这时候程序会不会正确的处理,返回相应的 error code

默认值测试: 很多情况一些非必填的参数会有默认值,比如说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,当然前置条件是数据库里面必须要存在这样的数据超过10条。

逻辑业务:

是否有依赖业务,比如查看订单,是需要用户首先登录的,所以肯定要保证登录了或有相应的cookie

业务逻辑测试: 传递正确的参数,接口对数据库进行查询的操作,需要去验证数据库查询是否正确,接口对数据库进行 增删改的操作,也需要看数据库是否同步进行了这些操作

异常测试:

异常分为两类,参数异常和数据异常

参数异常:

关键字参数:将参数写为开发语言中的关键字

参数为空:比如去掉了username参数

多或少参数:多或者少参数的验证,现在还不确定如果一个接口多了参数如果没有报错是否是合理的,或者是否需要优化,因为就目前开发给予的答案是,一般不对接口多了参数的处理

错误参数:比如将username参数写为了user等看是否能返回相应的error code

数据异常:

关键字数据:将参数的值填为开发语言中的关键字

数据为空:将参数的额值填为空

长度不一致:因为数据库中每个字段都设置有字段长度,填写不符合的长度进行验证

错误数据:就是将参数的值任意填写,或填写不存在的数值

异常类型测试: 比如count参数,这个参数的类型一定是可以转换为int类型的,这时候我们需要测试如果传的一些不可以 转换为int类型值来测试代码是否加入判断

性能测试:

响应时间

吞吐量

并发用户数

占用内存,CPU等

安全性测试:

敏感信息是否加密

必要参数是否后端也进行校验(现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证)

接口是否防恶意请求(SQL注入)

cookie:就是将header中的cookie修改或删除后看是否能返回相应的error code

header:就是删除或修改header中部分参数的值,看是否能返回相应的error code

唯一识别码:删除修改唯一识别码测试


接口测试的类型有哪些?


我们在做接口测试的时候通常是对普通的http协议接口进行测试。但实际上接口测试还有很多种类型,下面就列举下接口测试的具体类型

①基于http协议的接口,具体分为get、post、put、delete类型的接口

②基于web service的接口,具体有如下3种:

Ⅰ. SOAP类型,表示简单对象访问协议的一种接口

Ⅱ. RMI类型,针对于java语言的一个接口

Ⅲ. RPC类型:远程过程调用协议,程序可向网络中另一台计算机请求服务

建议多去听听黑马程序员视频库,此类的知识点有非常多,而且还是免费的。

沉淀!熬夜整理100个接口测试的知识点!!专业扫盲!

接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口是看不见的,但是可以访问!

DNS是域名系统(Domain Name System) ,DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。

HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接 的应用层协议。 由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。

使用fiddler工具抓取HTTPS, 体操作请查看文末领取教程

1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)

2xx -- 成功(表明服务器成功地接受了客户端请求)

3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)

4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)

5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的返回码有:

200 OK - [GET]:服务器成功返回用户请求的数据

201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功

202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT - [DELETE]:用户删除数据成功

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作

401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)

403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止

404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

HTTP协议常用的请求方式有如下几种:

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

(1)传送方式:get通过地址栏传输,post通过报文传输

(2)传送长度:get参数有长度限制(受限于url长度),而post无限制

(3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)

(4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留

(5)在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式

请求报文: 一个HTTP请求报文由请求行(Request Line)、请求头(Header)、空行(Blank Line)和请求体(Body)4个部分组成。

响应报文: HTTP响应报文和请求报文的结构差不多,由状态行、响应头、空行、响应体4个部分组成。

是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

解决方案:通过cookie和session来保持状态。

请求body;请求url+请求body:

Content-type:

application/x-www-form-urlencoded: 表单提交--键值对, form

multipart/form-data:文件上传---文件 ,MIME

application/json,text/xml

http协议目前有4个版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。

1.存储位置不同:Cookie 是将用户数据通过加密的方式保存在客户端,大多数情况 Cookie 存储在浏览器;Session 是用于控制客户端和服务端的连接,Session 存储在服务器;

2.存储容量不同:单个 Cookie 保存的数据不得超过 4kb,一个站点最多 20 个 Cookie,Session 一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

3.存取方式不同:Cookie 只能用 ASCII 字符串,通过编码方式获取 Unicode 字符或者二进制数据,不好存储复杂的信息,而 Session 能存储任何类型的数据;

4.隐私策略/安全性不同:Cookie 放在客户端,可以进行 Cookie 欺骗,所以不安全,Session 放在服务端,更加安全;

5.有效期不同:Cookie 可以设置属性达到长期有效,Session 依赖于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的过期时间默认为-1,只需要关闭窗口 Session 就会失效,就算不依赖 Cookie,用 UrL 重写也不能完成,如果 Session 超时时间过长,容易导致内存溢出;

6.服务器压力不同:Cookie 保存在本地,不存在服务端压力,Session 保存在服务端,每个用户产生一个 Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用 Cookie;

7.浏览器支持不同:如果浏览器禁用 Cookie,那么 Cookie 直接失效,Session 比较好点,可以用 URL 重写;

8.Cookie 和 Session 应用的场景:Cookie 一般用于记住用户的登录状态,如记录用户的习惯,购物车;而 Session 用于登录验证。

https在应用层。

会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。

在浏览器中输入URL并回车后,主要发生以下步骤:

解析URL,获取要访问的域名

DNS域名解析,根据访问的域名获得目标服务器的IP地址

浏览器与服务端三次握手建立TCP连接

连接建立成功之后就可以发送HTTP请求报文以及服务器返回HTTP响应报文

断开TCP链接

浏览器解析响应报文,渲染页面



版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:代码文档生成工具(代码生成软件的工具)
下一篇:Java long 转成 String的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~