一站式
企业服务平台
132-8122-9158

接口测试(接口测试的基础)

广告位招租
联系电话:13518188210

一、接口有哪些??

接口通常分为两类,即程序内和系统外

系统与外界的界面:例如你需要从其他网站或者服务器中获得资源或者资料,而其他人当然不分享数据库到你那里去,他只会为你提供自己编写的方式去获得数据,而你参考他所提供的界面可以利用他所编写的方式去实现数据共享,例如我们所用到的app,网址这类它们在处理数据时都会通过界面调用

程序内的界面:方法和方法间、模块和模块间的互动,以及程序内甩出的界面,例如bbs系统中,存在着登录模块和发帖模块等,然后需要发帖才能首先登陆,需要发帖才能登陆,然后两模块又存在着互动,其甩出一个界面让内部系统调用

一,常用界面:1

1.webService界面:就是走soap协议,通过http发送,无论是请求报文还是返回报文均为xml格式,大家测试时使用经过工具才可以调用、测试2、web服务器接口:也叫Web服务接口,它实现了不同浏览器之间的访问功能,包括浏览网页以及下载文件两个方面,主要用来解决用户与服务器间信息共享问题。3、应用程序接口可利用工具包括SoapUI,jmeter和loadrunner

2.httpapi接口:就是走http协议并以路径区别调用,所有请求报文均为key-value格式,回传报文通常为json串并带有get与post方式,这是目前使用最多的2种请求3、对于基于web应用开发中的一些问题进行了研究,包括Web服务技术以及数据库访问技术在其中的运用,并提出了相应的解决方案。4、对未来发展趋势进行了展望可用于postman,RESTClient,jmeter和loadrunner工具

二。前后端

在谈到接口测试前,首先要明确一下两个概念——前端与后端

前端指什么,针对web端,我们所用到的网页、所开通的站点,这些属于前端,而这些属于html,css编写的内容,而针对app端,则指我们所用到的app、android或object-C开发(在ios中开发app),其功能在于展示页面,使大家能够看到精美的页面并进行一些简单校验(如非空校验等),当我们运行到页面时,这些业务逻辑就会对用户产生影响,如您买东西、发微博等功能就会被后台控制,如果用户买东西时扣留余额就会被后台扣留,如果用户把余额扣留余额扣留到后台,那么用户就会把余额扣留给用户

前一句话您也许不容易明白,您只要牢记:前一句话掌管貌若天仙,后一句话掌管赚钱养家糊口

接口测试也不例外

接口测试就是对测试系统中各组件之间的接口进行测试接口测试是软件项目开发中不可缺少的环节之一。接口测试的目的在于检查各功能模块在实际应用中是否正确地执行了相应的功能接口测试的目的在于发现与外部系统或其它系统(包括各个子系统)之间存在着哪些交互点测试主要检查数据交换、传递、控制管理过程及各系统之间相互逻辑依赖关系

OK,这个问题在百度百科中也有提到过

事实上,我认为接口测试非常简单,甚至比普通功能测试还要容易得多(这句话说得太多了,后面可能还要删掉O(∩_∩)O哈哈!).目前求职很多企业都需要接口测试的经验,还有很多人问过我(只有2-3个人),接口测试是怎么回事,抱着听不懂还要装明白的心态,我将会说:所谓接口测试指的是通过对不同条件下入参对应出参信息进行检测,从而判断接口达到或者达到对应功能性和安全性的目的

为什么我会说接口测试要比功能测试更容易,因为功能测试从网页中输入数值,再通过单击按钮或者链接等传数值到后台,而功能测试还需要测量UI,前端交互等等,但是接口测试并不包含网页,通过在接口规范文档中调用地址,要求参数,将报文拼接在一起,再将要求发出来,并对返回的结果进行检查,这样只要测量入参与出参即可,相对要容易很多

四,界面的构成

接口均由那几部分构成?

一、接口文档应包括下列内容:1

1.界面的描述

2.调用url

3.请求的方式(get/post)

4.请求参数,参数类型,请求参数的描述

5.返回参数说明

从界面文档中可以知道界面至少要包括请求地址,请求方式,请求参数(入参与出参)等,有些界面还具有请求头header

标头(header):指服务器通过HTTP协议向浏览器传递HTML资料之前发送的字串。标头和HTML文件中间还需要空行隔开。通常存储cookie和token

有些学生问我,header与入参之间的关系是怎样的?其实,这两个名词在物理上并不是同一个东西。为什么说他们是一个事物呢?我们先来看看这两个名词各自的含义吧!它们分别表示了什么概念?什么叫参数?难道他们不是所有被送到服务器上的参数?

OK、第一、他们的确都是被送到服务器上的参数设置,但是他们之间又存在着差别,header中保存的参数设置通常保存着某些校验信息(如cookie等),就是要校验该请求有没有权限向服务器提交请求,若没有则才可以向服务器提交,并将请求地址与入参同时发送给服务器,再由服务器按照地址与入参返回出参而对于我们来说,host里面保存了一个用户信息,就是用户在host中输入的IP地址、用户名和密码即服务器首先接收header信息来判断请求是否具有权限请求并在判断具有权限之后再接收请求地址及入参

接口测试也不例外

要知道接口实际上是前端页面或者APP之类的调用来和后端进行互动使用,因此很多人会问我功能测试已经测试出来了,怎么还需要测试接口?接口测试真的很重要吗?是不是每个项目都需要进行接口测试才可以保证项目质量?如果你还不明白的话,那就来听听我们是怎么说的吧。首先要明确什么叫接口?OK,先来栗子一下,然后再回答问题:?

例如,对用户注册功能进行了测试,指定用户名是6~18个字符,其中包括字母(区别大小写),数字和下划线等然后将用户名与密码一起提交到后台数据库中,最后由服务器审核是否符合相关要求。这就是我们通常所说的后台程序功能。那么,在后台程序中是如何实现的呢?一,问题的提出功能测试中一定要测试用户名规则的时候,例如输入20字符,输入特殊字符等等,但是这都有可能仅仅是前端的验证,而后端则有可能没有验证,谁要是用抓包的方式绕开前端的验证而直接送到后端该怎么办?如果是用户的用户名和密码都没有经过任何校验,那么就不能通过前端校验,因为只有通过了用户名和密码才能进入系统如果登录时可能以SQL注入之类的方式任意登录甚至能获得管理员的权限,这不太可怕吗?

因此需要进行接口测试

1.能找到许多网页中运行无法找到的bug

2.检查系统处理异常能力

3.考察系统安全稳定

4.前端随意修改,界面测得不错,后端不需要修改

常见接口测试工具包括:

Postman:一个易于共享与合作的界面调试工具该系统采用面向对象设计思想进行开发,在此基础上使用C#语言实现了一个基于JSP技术的软件界面具备接口调试、接口集管理、环境配置、参数化、断言、批量执行、录制接口、MockServer、接口文档、接口监控

支持JMeter的开源接口测试和各种压测工具在Linux下运行

LR:商业版接口性能测试工具

SoupUI:开源的、WebService接口的通用测试工具,同时还可对Rest接口和接口进行安全测试

这一章主要讲述了怎样利用postman进行接口测试

一,简介postman接口的作用

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/c6b8716de5d05eb87028ab2627d0c94c.png"/>

1.工具栏

New:新的、可新设置的Request请求、Collection请求集、环境等

Import:引入、可引入他人输出的请求集合

Runner:运行请求集,批量执行

Invite:邀请函(需报名、邀请函合作)

同步图标:(需登记,将您的物品同步至云端)

抓包图标:在打开Postman代理、人工设定代理(或者手机代理)之后就可以抓取数据包/捕获请求了

设定图标:Postman的设定功能

消息图标:正式和协助消息

收藏图标:本人收藏(需登记)

云端图标:用户的云端数据(需登记)

2.接口管理区

History:可查询先前请求历史记录

Collections:接口的集合,对应于接口项目或者测试计划,在接口的集合中可设置无限极子文件夹来管理接口的分组

3.环境管理区

何谓环境

环境切换:用来进行环境切换

环境预览:用来迅速地预览一个环境内的全部变量

环境管理:用来增加修改环境和环境变量和全局变量的管理

4.接口设计区

接口设计区可通过在上面tab边设置+号来新建若干个请求如果要进行其他操作则只需选择相应的数据输入口即可,这样就减少了系统中各个端口之间的连接关系,提高了系统可靠性。同时也降低了系统的成本接口设计区自上而下划分为请求区与响应区

1请求区

请求地址行:可选择请求方式(GET-POST-.)、填入请求地址、向测试集发送请求并保存

要求数据区:划分为授权、要求头部、要求数据、要求在发送之前完成的剧本(为编制数据)和要求完成之后完成的剧本(论断)

2.响应区:

响应内容:body:可看到Pretty、美化格式、Raw、原始格式、Preview、HTML预览格式

响应头,headers

测试结果(TestResults):在Tests上相应请求所设定的论断

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/fe3669c93c2f2ad46a68d2be4ccbd50e.png"/>

5.Collection请求集,即测试集:

请求集作为Postman接口管理整体单元,操作,导出和共享均以请求集为基础

1.新建请求集:New键高过Collection,也可以在请求集列表之上直接单击新建请求集按钮

授权:在请求集和它的子文件夹下面的界面上统一使用此授权,而不需要每一个界面再次被完全独立地设定

请求前脚本:在请求集中,每一个界面共用一个请求前脚本

请求后断言:请求集合中每一个界面共用一个请求后脚本

请求集变量:请求集中共用的部分

2.新建子文件夹:子文件夹在属性上也有描述、权限、请求之前脚本、以及请求之后断言(不包含变量,对一个请求集中的变量进行统一管理),从而达到不同类别(Scope)Fixture的效果

3.测试集输出:测试集可输出给他人(环境信息不带),他人以导入的方式利用您的界面

4.测试集共享:测试集与他人直接共享(双方均需报名)

⑤增加请求:通过测试集(addrequest)增加请求,该请求被包括在该测试集中

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/6fb354711d3883add90e04fa2302c3ff.png"/>

在测试集上进行功能操作:1

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/7d73cdf1cd60c3a63b1b6652516f5877.png"/>

6.环境变量与全局变量

环境管理时也可单击Global来增加全局变量。环境变量仅在选定环境时有效。全局变量对任意环境有效。测试集上的变量仅对当前测试集有效

全局变量存在重复变量名,其优先级依次是:环境变量>全局变量>测试集变量

加入环境变量:设-add,填写环境变量的相关资料

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/96b4bfe888f33b7ba84b687631e0ea7d.png"/>

增加全局变量:设置--Global--全局变量的相关资料填写

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/eef768c0dca2286f7fc18ff0bd995ae5.png"/>

我们可以通过环境来设定多个变量来用于请求

环境变量的用法:选择环境,将{undefined}用于请求URL或请求Body中的环境变量{变量名},该变量可用于请求Body多种格式,但是无法直接用于请求前脚本(Pre-requestScript)及请求后脚本(Tests)

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/a1fa18fd95bdcc8b8c4d610e4b3614ee.png"/>

Params:

请求URL内参数较多时不便添加查看,可在URL输入框下方单击Params键,将变量和值以表的形式加入URL,由表加完变量和值将自动加入URL

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/cadee0c85cee631b8720b477f5b7a412.png"/>

7.要求设计

权限:当界面需要权限时,可在页面中设置权限方式(type、type信息等)

Header:请求头,可设定请求类型,Content-Type,Cookie等

Body:要求资料

form-data:混合表单并支持文件上传;x-www.form-urlencoded:文本表单;raw:原始格式并支持JSON/XML格式(后文可选);binary:二进制格式并支持二进制数据流的发送

Pre-requestScript:请求之前的脚本,Javascript语法,用来产生某些动态数据或者进行某些处理,然后再发出请求

Tests:请求之后的脚本,使用Javascript语法来在请求返回时进行某些处理,也可以对结果进行断言

7.1Postman以多种格式发送数据要求(注:选用不同要求但是,将Content-Type资料自动加入Header):

form-data:支持文件上传的混合表单

x-www-form-urlencoded:文本表单

raw:支持JSON/XML格式的原始格式(以后任选)

binary:以二进制格式发送二进制数据流的数据

form-data混合表单格式的传参实例(上传文档-选file类型、传文本选text):

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/a0ed6e69d3f9474041a64976a855bf7d.png"/>

xwww.form.urlencoded.c_m文本表单传参实例:

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/f0f022b657c8923040525aaf499b9b5c.png"/>

raw:支持json、xml两种原始格式的传参举例:1

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/3a2c15b5de654cf81c0a1b389143e353.png"/>

7.2tests断言的一个例子

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/ab8493c1d0ea085770d1b2ffdd9128cf.png"/>

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/782ff16a2350bebc1cd2636e2e0ebc71.png"/>

二,以postman接口为例进行试验

1.发get请求方式:

选择get请求模式、输入待请求url、传参模式以json为例、选raw再选JSON、之后把参数填到请求参数区域、单击send发出请求、在响应区域可以查看返回的结果4.使用ASP技术实现了对网络信息服务系统的开发和应用,并详细介绍了其中各功能模块的设计与实现方法。5.最后给出了一个具体的实例来验证其有效性下面

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/9fb5b002906f7c767708330d57081537.png"/>

2.发post请求的例子:1

选择post请求模式、输入待请求url、传参模式以混合表单为例、选择form-data、再把参数名称及相应数值填到参数区、单击send发出请求、并在响应区中查看返回的结果本文通过对不同方法的比较与分析,给出了一种新的实现方式。该方案能够满足系统需求且具有较高的效率。最后对所做工作进行总结,并提出下一步改进方向下面

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/cdbba92d4eac9d6d9d7df8e417472595.png"/>

3.利用postman进行请求的批量

Runner:测试集的批量执行

支持迭代次数的设定

支持载入csv或者json,txt等类型格式的测试数据

使用示例:

1新设置Collection(例如课堂练习)、新设置请求(addrequests)(例如登录)、选择POST方法、填写URL、申请数据、URL中host利用配置环境变量、申请数据利用变量进行参数化、在本地新设置参数化文件待用等

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/d19264e977c224ac9f34a6b09ce4e313.png"/>

2设断言

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/d4354e0c744dd2fe34748df4b1da0054.png"/>

3Runner配置

1.单击Runner进入批量执行测试集的设定页面

2.在测试集下选择一个需要批量执行的申请,再选择一个本地参数化txt(login.txt)文件,数据文件的类型选text/csv.迭代次数iteration.参数化数据有几个填写几个

3.单击preview即可预览本地参数化数据

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/ae3aeedd7a54ced4f3276194f0697f7b.png"/>

接口测试(接口测试的基础)

接口测试(接口测试的基础)" src="https://www.juluding.cn/wp-content/uploads/2022/08/ef94a7919cfdcfb748a233d8b487c6ed.png"/>

4上述配置完成后单击RunXXX键可以批量执行用例获得测试结果、图1

赞(7) 联系作者
未经允许不得转载:【聚禄鼎】一站式企业服务平台 » 接口测试(接口测试的基础)

评论 抢沙发

让我们一起创建更加美好的网络世界

本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息!

扫码添加站长微信

扫码添加小编微信

登录

找回密码

注册