【接口自动化测试 -- 第一部分】

仅用作个人了解记录!

1. 接口测试基础

接口定义 HTTP协议  接口规范
接口测试流程 API文档解读 接口用例设计

1.1 URL

URL = 协议 + 服务器地址 + 端口号 + 资源路径 + 参数
image.png

1.2 HTTP协议

  1. HTTP协议组成:
  • 请求: 行,头,体
  • 响应: 状态行,响应头,响应体
  1. 常见请求方法 : 查询GET 新增POST 修改PUT 删除DELETE
  2. 常见响应状态码
  • 2XX : 请求成功,如200 201 204==
  • 4XX : 客户端错误,如400 401 403 404==
  • 5XX : 服务端错误,如500 503==

image.png
image.png
image.png
image.png
image.png
image.png
image.png

1.3 接口规范

分类 传统风格 RESTful
请求方法 主要使用Post Get方法 遵循HTTP协议方法定义
URL 定义资源和操作混合 仅定义一个资源,不包含对资源的操作
状态码 均是200 遵循HTTP协议状态码定义
  1. 传统接口风格

image.png

  1. Restful

image.png

2. 工具实现接口测试

Postman 接口调试 断言 自动关联

  1. 拿到接口项目,先测试业务接口,然后再考虑单个接口
  2. 如何测试业务接口
    1. 根据业务流程图梳理业务路径
    2. 设计测试用例覆盖每一条业务路径
  3. 如何解析接口文档
    1. 分析接口间依赖关系
    2. 分析接口请求(比如 : URL 请求方法 请求头 请求参数类型 请求参数==)
    3. 分析接口响应 (比如 : 响应状态码 响应数据==)

举例: 提取测试点 --> 找业务路径
image.png

解析接口文档
测试用例设计
image.png
编写测试用例

POSTMAN介绍

下载地址 : https://www.getpostman.com/ postman下载链接地址
如何使用postman发请求并看响应结果
设置请求方法 -> 设置URL -> 设置请求头 -> 设置请求数据 -> 点Send发请求->看响应状态码 -> 看响应体数据

如何使用postman发请求 multipart/form-data 并看响应结果
设置请求方法 -> 设置URL -> 设置请求头 -> 设置请求数据**[body->form-data->file选择上传文件] **-> 点Send发请求->看响应状态码 -> 看响应体数据
image.png
image.png
image.png

POSTMAN自动关联数据

Postman自动关联解决了** 接口间需要自动传递数据;**
Postman自动关联实现思路:
①提取关联数据 pm.response.json()
②保存关联数据 pm.environment.set()
③引用关联数据 { {变量名}}
image.png
image.png
image.png
image.png
举例
image.png
Postman 如何提交查询参数

  1. 设置在URL
  2. 设置Params区域

批量执行

通过运行测试集的方式批量运行测试用例

  1. 点击测试集中的"run"按钮,批量运行测试用例
  2. 弹出Collection Runner窗口,点击运行按钮
  3. 查看测试结果

image.png

单接口测试

正向 : 必填参数 全部参数
逆向 : 空 类型错误 长度错误 规则不符

image.png
提取测试点
image.png
测试用例
image.png
postman进行接口测试
image.png

Postman断言

断言作用 : 让工具代替人工自动判断预期结果和实际结果是否一致
常见断言方式有 :

  • 响应状态码
  • 包含字符串
  • JSON数据断言

image.png

Postman参数化

场景: 测试脚本仅测试数据不一样,使用参数化提高脚本复用
步骤:
image.png
如何实现参数化

  1. 准备数据文件
  2. 引用数据文件
    1. 请求参数获取 { {变量名}}
    2. 代码中获取 data.变量名

3. 代码实现接口自动化测试

Pyhton Requests Pytest Allure 和接口测试框架
image.png

接口自动化测试

接口自动化 : 使用工具或代码代替人对接口进行测试的技术
测试目的 : 防止开发修改代码时候引入新问题

测试时机 :

  • 开发进行系统测试 转测前, 可先进行接口自动化脚本编写;
  • 开发进行系统测试 转测后, 优先进行系统测试用例执行,再进行接口自动化脚本编写(为后续回归测做准备)


image.png

接口自动化框架

image.png

项目目录结构

image.png

Requests库

python 中的"浏览器",基于urllib的HTTP库

// 安装
pip3 install requests

    // 验证
    pip3 show requests

    //操作步骤
    // 1 导包
    // 2 发送接口请求
    // 3 查看响应数据

image.png
image.png
image.png

// 需求 登录

//导包
import requests

//发送请求
url = "http://test.itkaka.net/api/login"
    header_data = {
    
    "Content-Type":"application/json"}
login_data = {
    
    
    "uname" : "admin",
"pwd":"admin123",
    "code":2,
    "uuid":"xxx"
}
response = requests.post(url=url,headers= header_data,json=login_data)

    //查看响应
    print(response.status_code)
    print(response.json())
封装接口对象层
// 接口封装时,重点是依据接口文档封装接口信息,需使用的测试数据是从测试用例传递,接口
//方法被调用时需要返回对应的响应结果

// 导包
import requests

//创建接口类
class LoginAPI:
	// 初始化
	def _ _ init _ _(self):
                     // 指定url基本信息
self.url_verify = ""
    self.url_login=""

    //验证码
    def get_verify_code(self):
    return requests.get(url=self.url_verify)

    // 登录
    def login(self,test_data):
    return requests.post(url=self.url_login,json=test_data)
    

image.png
image.png

image.png

封装接口测试脚本层

测试数据准备,断言以及业务处理==
image.png

项目配置文件

image.png
:::info
接口自动化框架中配置文件的主要作用是 : 维护项目相关基本信息,比如URL和项目路径=
:::

Allure报告

官方帮助文档 : https://docs.qameta.io/allure
image.png

// 生成测试结果文件
//安装
pip install allure-pytest


// 使用 allure 生成测试报告的步骤
    // 1. 修改 pytest.ini 配置文件
    [pytest]
    addopts = s --alluredir report
    testpaths = ./scripts
    python_files = test*.py
    python_classes = Test*
    python_functions = Test*

    // 2. 运行pytest 命令产生测试结果文件(json文件)
    pytest

    // 3. 运行allure 命令生成测试报告
    allure serve report

image.png
image.png

持续集成 CI/CD(待补充)

Jenkins Git GitHub

进阶(待补充)

PyMysql操作数据库
Mock测试 接口加密解密测试

猜你喜欢

转载自blog.csdn.net/Kaka_csdn14/article/details/131612905
今日推荐