接口测试基础

接口测试概述

生活中接口和软件程序的接口

 生活中接口(插板,插座,USB线)
 软件程序中接口(王者:与微信好友玩,与 QQ好友玩:(系统内部接口);饿了么淘宝、微信、支付宝都可绑定)

接口

 API:接口属于一种系统或程序调用接口;开放式API
 GUI:接口属于一种图形界面的操作软件的系统

接口测试

 测试系统内部各个组件间接口,以及系统与外部系统之间的交互点。

接口测试内容

 检查数据交换,发出和接收的数据
 传递和控制管理过程
 系统间的相互逻辑依赖关系

接口测试范围

 业务功能测试:正常场所;异常场景
 边界分析测试:输入参数边界;输出参数边界
 参数组合测试:(正交实验、判定表法)
 性能测试:响应时间、吞吐量、并发数、资源使用效率(CPU,IO,内存,network)
 安全测试:敏感信息加密,批量抽奖,SQL注入

接口测试适用场景

 多系统间交互开发
 为其他系统提供服务的底层框架系统和中心服务系统
 一个上次系统中的服务层接口
 平台越复杂,系统越庞大,接口测试效果越明显

与界面功能测试比较

 没有具体页面
 规范文档(调用地址、请求参数、拼接请求)
 发送请求,检查返回结果
 只需测试入参和出参即可

接口测试好处

 发现页面操作上发现不了的bug
 检查系统异常处理能力、安全性、稳定性
 前端变,接口测试,后端不变

接口测试必备条件

必要条件

 接口说明(干什么)
 调用URL(统一资源定位;网络地址)
 请求方法(get/post)
 请求参数,参数类型,请求参数说明
 返回参数说明

标准和规范的接口文档

在这里插入图片描述

如何获取接口信息

 标准化的接口文档是进行接口测试的前提
 询问开发
 测试人员自己抓包获取数据和信息(实际运行结果)

常见的接口传输协议

 ftp(21):文本传输协议
 jdbc:
 POP3(110):邮局协议第3版本
 SMTP(25):简单邮件传输协议
 IMAP(143):交互式邮件存取协议

常见的接口测试工具

谷歌浏览器、火狐浏览器

postman(http协议)

 一款强大的网页调试与发送网页HTTP请求,并能运行测试用例
 模拟各种http request

JMeter

Fiddler(抓包工具)

常见的接口数据组织形式

HTML
JSON
String
xml

http(80)/https(443):超文本传输协议

http协议定义

 超文本传输协议
 从服务器传输超文本到本地浏览器的传送协议
 是一个基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果)

http协议特性

 无连接的
  (请求和响应的双方可不同时在线)
 媒介独立。
  传输过程的数据和通信协议没有关系(只要客户端和服务端能够识别数据,就能进行传输)
 无状态
  (只要请求,就重新响应,不管之前响应了多少数据,不做之前的记录和持久化处理)

与https协议关系

 以安全为目标的HTTP通道,HTTP的安全版
 HTTP基础之上加入了SSL协议(HTTP+SSL)SSL依靠整数验证服务器身份,并为浏览器和服务器之间的通信加密
 有状态、信息发送具有安全认证,不会重复发送

http与https区别

 https需要申请证书
 使用完全不同的连接方式。端口号也不同,前者80,后者443
 https可进行SSL加密传输协议、身份确认的网络协议,比http协议安全

http协议工作原理(请求-响应)

 工作在客户端-服务器(C/S)架构上
 浏览器作为HTTP客户端通过URL向HTTP服务端发送请求。
 WEB服务器根据收到的请求后,向客户端发送响应信息。

HTTP请求及其结构

 客户端发送一个HTTP请求(request)到服务器。
 请求报文包括(请求行、请求头部、空行和请求数据)
在这里插入图片描述

HTTP请求(request)

get/post都是TCP连接

get获取,返回实体主体

不带参数的Get请求(Postman)

 1)创建测试集合(Collection)
 2)在集合中创建请求
 3)输入地址(URL),和请求方式(get)
 4)send发送请求
 5)分析返回信息
  Body区域:显示服务器返回的信息的主体;
  Cookies区域,服务器返回的所有Cookies值(用于验证客户端、服务端身份信息)
  headers区域:服务器返回的响应头部信息
  Test Results:断言,判断服务器返回的响应信息是否正确
 6)响应的其他信息:status(状态码)、Time(响应时间)Size(响应信息的大小)
 7)请求案例内容的保存
 8)分析接口响应结果,清楚每一个返回值是什么意思及其取值范围;
1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

带参数的Get请求

 1)创建测试集合(Collection)
 2)在集合中创建请求
 3)输入地址(URL),和请求方式(get)
 4)添加参数,在请求区Params里面添加参数,输入参数名(key)及参数值(value);如果有多个参数,依次输入。(等价类划分、边界值分析法)
 5)send发送请求
 6)分析返回信息
  Body区域:显示服务器返回的信息的主体;
  Cookies区域,服务器返回的所有Cookies值(用于验证客户端、服务端身份信息)
  headers区域:服务器返回的响应头部信息
  Test Results:断言,判断服务器返回的响应信息是否正确
 7)响应的其他信息:status(状态码)、Time(响应时间)Size(响应信息的大小)
 8)请求案例内容的保存
 9)分析接口响应结果,清楚每一个返回值是什么意思及其取值范围;
在这里插入图片描述

百度翻译API接口实战1

 1)注册认证。在管理控制台获取APP ID和密钥
 2)通过API文档,知道了接口地址
知道了使用接口,需要传参
在这里插入图片描述
 3)准备参数
在这里插入图片描述
MD5加密:百度在线加密

q:apple
from:en
to:zh
appid:20211109000995025
salt:20211109
sign:ec8b279cae5c18ed2bf868abd27e5b99

 4)把参数输入到Postman指定的位置,点击(send)请求
在这里插入图片描述
 5)对比请求结果
在这里插入图片描述

百度翻译API接口实战2

 将上述过程中的参数
确保要翻译的文本q为UTF-8编码(之前使用URL编码(在线)转换)
q:苹果
from:zh
to:en
appid:20211109000995025
salt:20211109
sign: 4fb38252552818a016e1dd115342d188
在这里插入图片描述

post向上提交

向指定资源提交数据进行处理请求。post请求可能会导致新资源的建立和/或已有资源的修改

带参数的Post请求

 1)谷歌浏览器(开发者模式-network)获取接口信息。针对特定的请求,查找相关信息
 2)相关参数
在这里插入图片描述
 3)在Postman中设定参数。请求的(Body)中,一般设置为:form-data,写出对应的参数的值
 发送请求
 分析响应结果
在没有API文档的情况下,必须询问开发或者自己阅读接口对应的函数(阅读源代码)
在这里插入图片描述

get和post的区别

 get请求,浏览器会把http header和data一并发送;产生一个TCP数据包。post请求,浏览器先发送header,服务器响应100;浏览器再发送data,服务器响应200.;产生两个TCP数据包

自动化测试

参数化运行

 参数化:在程序中使用变量代替常量的过程
 循环实现脚本的自动运行

断言

 在postman中,tests模块就是对HTTP的响应结果进行判断的地方。
 在脚本中添加相应的判断,实现脚本自动的比较(判断)程序的实际结果和预期结果。
 自己写的断言机制
框架或者内置的断言机制

HTTP响应(response)

响应由状态行、消息报头、空行和响应正文组成
前端代码的network中的headers和cookies
响应状态码:
 浏览器接收并显示网页前,此网页所在的服务器返回一个包含http状态码的信息头响应浏览器请求。
在这里插入图片描述

接口测试用例方法

用例设计方法

 等价类划分法、边界值分析法(参数的请求)
 因果图法、判定表法(请求的原因和结果,条件组合)
 正交实验法(多个参数组合搭配,不全部)
 场景法(正常场景、异常场景)
 错误猜测法(首次)
 随机测试

接口测试用例模板

在这里插入图片描述

80-20原则

1)软件中80%的缺陷、发现在需求、设计阶段
2)80%的代码是没有问题的,出bug的代码只占20%
3)一个软件80%的功能,平常很少用
4)人们在使用一个软件的时候,80%的时间使用20%的核心功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值