浅谈接口测试

gword gword     2023-03-10     362

关键词:

一、关于接口

接口是什么

在理解什么是接口之前,我们先了解一下前端和后端。

前端:是与用户直接交互的部分,例如web端浏览网页时看到的字体、颜色、布局等,app端用户和软件之间的交互。

         web端一般用到的技术有html、jscss

         ios用到的语言为object-c、swfit

         Android用到的语言为Android

后端:是业务逻辑,功能的实现、数据的存储。语言有java、php、python、go等。

前端和后端都是不同语言来开发的,但是他们需要交互,那怎么交互呢,对,就是通过接口来交互,把前端和后端联系起来。

接口就是从数据库里获取数据、插入数据。接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。

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

系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。

接口的分类

现在我们最常用的两种接口就是webservice接口和http api接口,概念这里就不赘述了,知道有这两种接口和怎么测试就可以了。

webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。

http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

现在我们最常用的两种接口就是webservice接口和http api接口,概念这里就不赘述了,知道有这两种接口和怎么测试就可以了。

webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。

http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

 

二、接口测试

 

什么是接口测试呢?

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

      其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。

 

接口文档 

既然我们要测试接口,那我们根据什么来测试呢?

那就是接口规范文档,也是我们测试最重要的一个依据

接口文档是干嘛的呢,接口文档说简单点,就是这个接口的使用文档。

接口文档至少包括:

1、接口说明

2、调用url

3、请求方法(getpost)

4、请求参数、参数类型、请求参数说明

5、返回参数说明

 

如何测接口

http接口:

前面我们已经有了接口文档,那么我们就要根据接口文档来拼接参数调用接口,那么怎么调用呢?

接口请求报文拼接

1、url?param=value&param2=value

这种是最简单的一种,问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接

   https://api.douban.com/v2/book/search?q=邹伟伟

2、还有一种就是入参是json串的,那就不能拼接参数了,需要借助工具来完成比如postman

GET和POST请求:

       如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。

GET请求和POST请求的区别:

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

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

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

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

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

http状态码

 

l  每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:

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

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

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

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

 

get请求,不需要借助任何工具,在浏览器里面就可以发请求。

get请求传参的格式为URL?parma=abc例如:

有多个参数需要传 格式为URL?parma=abc&xxx=efg 

 

接口测试工具

接口测试的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,下一篇文章会介绍一下postman 和jmeter这两种工具

 

 

 

 

技术图片

 

浅谈接口自动化测试

(转自:https://www.cnblogs.com/imyalost/p/7430126.html)昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路。这篇博客,... 查看详情

浅谈接口自动化测试

昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路。这篇博客,就说说功能测试到接口自动化的进阶,以及接口... 查看详情

浅谈接口diff测试

浅谈接口Diff测试转自:https://mp.weixin.qq.com/s/6H-AGaqpwf47gcxs2Sw9fQ所有的手工CASE和自动化CASE都跑了,上线为啥还经常有问题呢? 服务端语言由PHP语言改成GO了,原来的接口逻辑我又不了解,怎么测试? 测试环境测的好好的,... 查看详情

浅谈接口自动化测试

昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路。 这篇博客,就说说功能测试到接口自动... 查看详情

sockt-浅谈接口性能测试脚本编写

平时我们做的都是http请求的接口测试,初次接触socket接口还是有点不知如何下手,其实他如http接口请求区别并不是很大,也是接口的链接-发送数据-断开连接这三大步骤来实现:以下文章转载自:http://lovesoo.org/how-to-use-loadrunner-... 查看详情

浅谈pytest+httprunner如何展开接口测试(代码片段)

软件测试有多种多样的方法和技术,可以从不同角度对它们进行分类。其中,根据软件生命周期,针对不同的测试对象与目标,可将测试过程分为4个阶段:单元测试、集成测试、系统测试和验收测试。本文着... 查看详情

浅谈接口测试

一、关于接口接口是什么在理解什么是接口之前,我们先了解一下前端和后端。前端:是与用户直接交互的部分,例如web端浏览网页时看到的字体、颜色、布局等,app端用户和软件之间的交互。     web端一般用... 查看详情

浅谈自动化测试行为的本质

今天跟大家讲解的是自动化测试行为的本质是什么?会有很多人都说自动化测试可以零基础入门,可是对于新手来说,总是把自动化看得很高端和复杂。下面就跟大家讲讲什么是自动化行为的本质。 先来看看功能测试如何进... 查看详情

简述mock接口测试

...口测试?它对我们的开发工作有什么帮助?今天我们就来浅谈一下Mock接口测试的优势以及使用场景。什么是Mock接口测试?Mock接口测 查看详情

postman和jmeter浅谈

  postman一get请求:1.可以直接通过URL进行测试,在地址后有路径后面加“?”后面接key及Value,如果多个参数加“&“链接key。2.如果接口需要添加header信息,在Headers下添加key及Value POSTMAN-POST请求:1.如果接口要求,... 查看详情

浅谈自动化测试

本文首发于vivo互联网技术微信公众号?链接:https://mp.weixin.qq.com/s/ZsgstdmaiFUKkLItc6y-Lw作者:何彦军软件测试作为软件生命周期中不可缺少的组成部分,对提高软件质量起着重要作用。随着软件测试的发展,自动化测试技术也得到了... 查看详情

浅谈接口

接口:先看下面一段话:       如果,你即将准备开始编程,就是那种感觉需要很多很多类,而其中有些类,你已经提前知道需要哪些共同的功能。怎么办?当然首先想到,提前给他们规定好一种模式,规定他们是什么... 查看详情

浅谈接口

接口:先看下面一段话:       如果,你即将准备开始编程,就是那种感觉需要很多很多类,而其中有些类,你已经提前知道需要哪些共同的功能。怎么办?当然首先想到,提前给他们规定好一种模式,规定他们是什么... 查看详情

浅谈java接口

一、接口的本质探讨    官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的... 查看详情

浅谈测试流程(摘)

【摘要】软件测试从哪里开始到哪里结束?中间经过哪些环节以及各个环节要注意哪些事项。【关键词】测试流程、需求分析、测试用例、测试计划、缺陷管理一、概述  一般而言,软件测试从项目确立就开始了,前后要经过... 查看详情

浅谈软件测试流程

浅谈软件测试流程  【摘要】软件测试从哪里开始到哪里结束?中间要经过哪些环节以及各环节要注意哪些事项。本文就有关问题结合个人实际工作经验进行阐述,鉴于每个环节都可以做为一个专题来进行探讨,所以受篇... 查看详情

浅谈javafuture接口

Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务。但不管是继承Thread类还是实现Runnable接口,都无法获取任务执行的结果。JDK5中引入了Callable和Future,通过它们执行异步任务可以获取执行结果。Fut... 查看详情

测试浅谈(原则简单流程)

1、测试的原则:·测试证明软件存在缺陷·不可能执行穷尽测试、·测试应尽早启动、尽早介入·缺陷存在群集现象(二八定律)·杀虫剂悖论·不同的测试活动依赖不同的测试背景·不存在缺陷的谬论2、测试的流程·1.需求分析·2.测... 查看详情