【Web接口测试_基础概念】接口概念、接口分类、接口定义、接口规范、接口方法、接口用例设计整理

【接口基础】

1.接口测试概念

1.1 基础概念

接口的定义:接口英文“interface”,表示某个对象和外界交互的部分。

 

1.2接口的分类:

①用户UI接口,表示提供给用户操作的界面,是应用和用户交互的部分。

主要分为图形化界面用户接口(英文简称GUI)和命令行接口(英文简称Comand UI),

广义的手工功能测试,就是操作UI界面,调用UI接口,查看服务器返回给页面展示的结果。【常用】

 

②消息交互接口,diameter、radius等电信鉴权网关;

或者基于SOAP的web service等股价查询接口;或基于REST的后台服务器接口。【常用】

或者Rest API等阿里云对象存储服务OSS API接口。

这些接口,需要开发一定的测试工具,来模拟收发相应信息和响应数据。

 

③编程语言开发接口,主要需要编写代码调用接口开发包里面编程库的接口函数和对象的方法。

 

④其他接口,也是需要开发接口测试工具,才可以测试。

比如对账系统,提供了文件接口,直接把文件放在一个固定的ftp服务器上给别的系统取用。

比如数据服务系统,数据库、缓存、消息队列等服务公司,提供对外接口如Socket、共享内存、管道等。

 

1.3 常用的web API接口。

①以前的主流接口:SOAP协议接口,指定WSDL语言描述web service,用基于XML的SOAP协议来封装消息,用HTTP协议传输消息。(已慢慢被淘汰,和被下面REST接口方式替代)

-优点:清晰没有歧义,可以用软件工具定义一个接口,自动生成相应的代码。

-缺点:概念特别复杂,开发人员需要花较长时间理解它,应用到项目,交流门槛较高。

 

②目前的主流接口:REST接口(representational state transfer),仅仅表示描述了一种网络应用软件的架构风格,并不是一种具体的软件架构的设计规范,凡是具有该风格特效的架构,都可以成为REST ful的软件架构。

-举例说明:

比如长方形餐桌/上班穿正装,就是包含了具体要求的一种基础SOAP的web service的接口设计规范;

比如欧式餐桌/上班穿舒服点,就是一种抽象满足REST架构设计风格的web服务接口。

 

③Rest接口规范:

-客服端和服务器结构

-连接协议具有无状态特性:确保系统的横向拓展能力

-能够利用Cache机制增进性能

-层次化的系统

 

1.4前端设计规范:

-每个资源必须有对于的标志(URI),服务请求中标记要操作的资源的URI.

-所谓资源,就是系统中任意一个可操作的对象。比如:一个P2P理财系统,用户、用户的积分、用户的标的、用户的统计等等,都是资源。

解释:客户端访问服务器资源时,服务请求用URI标记资源,比如:http://api.example.com/users/12

表示的访问id为12的用户的信息。

-通过对所标记资源的请求,返回HTML、XML、SVG、JSON、PNG等各种格式的资源文件。

解释:客服端通过HTTP请求的Accept头告诉服务端,它要什么格式的资源。

-为了达到无状态请求的特性,请求必须包含足够的信息描述,以便精准找到资源。

解释:HTTP请求的方法(GET查看/POST添加/PUT更新/DELETE删除等)来描述这条消息需要完成什么样的操作,比如增加、删除、查看、修改资源等。

 

2.接口测试方法

①工具:通过postman、jmeter等接口测试工具,进行web服务接口的测试。

②脚本:通过已封装好的编程语言的一些库,搭配自动化测试框架,进行接口自动化测试。

③流程:先模拟构建HTTP请求消息,再解析收到的HTTP响应消息。

④区别:是否绕过前端的判断逻辑。

web 测试主要是通过浏览器测试整个产品功能,包含前端判断和接口规范;

web API测试主要是绕过浏览器和前端判断,直接对web API的接口规范进行测试。

 

3.HTTP协议简介

①HTTP应用:为何要了解http协议,因为几乎所有的REST ful系统和SOAP Web Service 都是基于HTTP协议传输消息。

②HTTP协议:全称应用层超文本传输协议,比普通文本传输协议厉害的地方就是“超”字,表示是“超哥”,可以传输超级多种类型的信息资源。

③HTTP版本号:0.9、1.0、1.1(目前最热门)、2.0.

④HTTP请求的组成:

请求行(必要):请求方法、url地址、协议版本号,必须以<CR><LF>结尾。

请求头(必要,一般为多个):请求的其他信息,包括host、content-type、length等,必须以<CR><LF>结尾。

请求体(get非必要,post必要):消息体中保存了提交给后台的具体每一个字段的数据信息。

⑤HTTP响应的组成:

状态行(必填):版本号、状态码。必须以<CR><LF>作为结尾。

响应头(必填,一般为多个):date、type、encoding等。必须以<CR><LF>作为结尾。

空行:用户分隔响应头和响应体。空行也必须用<CR><LF>结尾,而无其他空格。

消息体:支持HTTP、png等各种格式的资源返回。

 

状态代码:

1**消息:请求已经被服务器接收,继续处理。

2**成功:请求已经被服务器接收、理解、并接受。

3**重定向:需要后续操作才可以完成这一完整请求。

4**请求错误:请求中含有词语错误或者无法执行。

5**服务器错误:服务器在处理某个正确请求时发生错误。

 

请求的方法:

get:向指定的资源发出“显示”请求,使用get方法多用在读取数据,无法修改和新增后台数据。

post:向指定资源“提交”数据请求,请求服务器对表单、文件进行“修改、新增”等操作,数据详情被包含在请求的请求体中。这个请求可能会创建新的资源和修改已存在的资源。

put:向指定资源位置上传并“更新”其最新的内容。目前常用于”更新资源“的操作。

delete:请求服务器删除请求Request,指定的URI所标识的资源。

head?:与get请求一样,向服务器发出“显示”请求,不过区别在于,head请求返回的响应,不传回资源的请求体本文部分的内容。好处在于,可以不必传输全部内容的情况下,就可以“获取”其中关于该资源不可修改的的元信息和元数据。

 

4.postman的入门

4.1 工具的应用:目前大部分系统都是部分遵循了REST的风格规范,也可简称为REST full系统。

REST full系统,主要是基于HTTP的CRUD?(增删查改)的操作,分别使用了HTTP协议的POST、GET、UPDATE、DELETE方法的请求。

 

4.2 工具的组成:

①顶部Headerbar工具栏。

②左边的sidebar请求侧边栏:主要分为History历史标签(默认)和Collections集合标签(便于管理)。

③右边的Request Builder请求构建和解析栏:主要用于管理API请求详情的,模拟HTTP请求的构建和查看服务器响应内容解析的。

 

4.3 流程:

我们输入url地址,选择Method(请求方法)和Headers(请求头)和消息体,点击发送。

Postman就发出请求给百度网站服务器,百度网站服务器随后接到请求就响应了这个请求,给我们返回响应信息。Postman接收到响应信息后,显示出消息的结构,展示给我们看。

 

4.4 拆解URL:

http://www.baidu.com/?action=list_course&pagenum=1&pagesize=20

?后面的内容,专业术语叫“query string“。

&分隔符,表示每一个单独的参数。

/请求行里面的url地址如果是“/”,表示根目录

 

4.5 注意事项:

①参数转义处理:如果参数中带有特殊字符,比如&、空格、百分号等,鼠标移动到参数值,右键选择“encodeURIcomponent”,替换成相应的转义字符。

②content-type(必填项,请求域):请求头里面的该字段,表示发送请求的消息体的类型,接口参数填写时需要根据type类型,选择在哪个模块(form-data、x-www-urlencoded、raw-jason或者raw-XML、binary)下填写参数。

③生成测试用例文档:选择左侧请求的folder目录,写好备注,点击右键,选中“publish docs”,生成文档。

 

4.6 接口用例。

测试方法:等价类、边界值、条件组合、错误猜测等方法。

模块名称:比如添加课程

Case编号:TestCase_001

测试步骤:

1.使用postman工具,调用创建课程API接口,新增一门课程,课程名称不存在。

2.使用postman工具,调用列出课程API,查看最新课程列表。

预期结果:

1.返回创建成功,code:0,massage:创建成功。

2.返回结果包含新赠的课程信息。

执行测试时:

1.调用查看课程清单API,查看老的课程列表。

2.调用创建课程API,新增一门课程。

3.再次调用查看课程清单API,查看新的课程列表。

 

Case课程:TestCase_002

测试步骤:同上。修改条件(课程名称已存在)

预期结果:

1.返回创建失败,消息体内容为{”recode“:2,”reason“:”同名课程已经存在“}

2.返回结果中,没有步骤1新增的课程信息。

 

4.7 测试环境和变量。

定义:{{变量名称}},变量就是一个字符串标识符,用来对于一个多次出现的值。

分为:全局变量和部分变量。

场景:

比如测试环境的服务器地址、端口号,内外测不一致,可以单独设置一个变量当前环境使用。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值