接口测试学习

接口测试学习,第1张

文章目录
  • 一、接口测试基础
    • 1.接口及接口测试概念
      • 接口的类型
      • 接口测试
    • 2.HTTP协议(超文本传输协议)
    • 2.1 URL(统一资源定位符)
    • 2.2 HTTP请求
      • 请求行
      • 请求头
      • 请求体
    • 2.3HTTP响应
      • 状态行
      • 响应头
      • 响应体
    • 2.4 传统风格接口
    • 2.5 RESTful风格接口
    • 3.接口测试流程
      • 接口文档
      • 接口文档解析
      • 黑马人力资源网页:
    • 4.接口用例设计
      • 单接口测试用例
      • 业务场景测试用例
  • 二、Postman实现接口测试
    • 1.Postman介绍和安装
    • 安装插件newman
      • 黑马官网
    • 2.Postman基本用法
    • 3.Postman高级用法
      • 断言
        • **1.断言响应状态码**
        • 2.断言响应体是否包含某个字符串
        • 3.断言响应体是否等于某个字符串(对象)
        • **4.断言json数据**
        • 5.断言响应头
    • postman断言工作原理
    • 全局变量和环境变量
    • 请求前置脚本
    • 关联
    • 批量执行用例集
    • 4.Postman测试报告
    • 5.postman参数化
      • 数据文件简介
      • 导入外部 数据文件
      • 读取数据文件数据
      • 生成测试报告
    • 6.项目实战(iHRM)
    • 初始化项目环境
      • 新建用例集
      • 创建环境变量
    • 登录模块
      • *登录成功接口*
      • 其他接口共性分析
      • 实现其他接口
    • 员工管理模块
      • 总析
      • 提取令牌
      • 添加员工
      • 提取添加员工的id
      • 查询员工
      • 修改员工
      • 查询员工列表
      • 批量运行测试用例
      • 生成测试报告

一、接口测试基础 1.接口及接口测试概念

接口的类型

#接口
def eat (something):
    print(f'小鸟吃{something}')

#使用接口,传递数据
def bird():
    eat('1')

bird()
小鸟吃1
接口测试



2.HTTP协议(超文本传输协议)

协议:规则,要求通信双方必须严格遵守

2.1 URL(统一资源定位符)

作用:在网络环境中,唯一的定义一个数据资源

2.2 HTTP请求


整体格式(Content-Type:描述请求体的数据类型)


fiddler抓包验证

请求行

请求头

请求体

2.3HTTP响应



状态行

响应头

响应体

2.4 传统风格接口

List item

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ow2LGo0i-1650257047431)(https://img-blog.c sdnimg.cn/289a0d16ce0a4a8fa7d78f156d8377cd.png)]

2.5 RESTful风格接口

3.接口测试流程


接口文档



结构

接口文档解析

黑马人力资源网页:

http://ihrm-test.itheima.net/#/settings/index

开发者工具

4.接口用例设计 单接口测试用例


业务场景测试用例


二、Postman实现接口测试 1.Postman介绍和安装

安装插件newman

node.js安装成功

newman安装成功

成功!!

黑马官网

http://yun.itheima.com/gongju/c144/p/3.html

2.Postman基本用法


案例:从接口文档,获取登录接口的http请求,使用postman发送

3.Postman高级用法

创建collections

点笔修改名称

ctrl+s 保存

导出用例集

使用默认即可

直接点击import即可导入

断言

1.断言响应状态码
//断言响应状态码是否为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});


成功

2.断言响应体是否包含某个字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
  

3.断言响应体是否等于某个字符串(对象)
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

4.断言json数据
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});


5.断言响应头
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});


postman断言工作原理

全局变量和环境变量



请求前置脚本

在send按钮点击后,第一时间被执行,在postman内部实际http请求之前
时间戳工具

案例:


3.查看写入的变量

关联

应用于多个http请求之间,有数据关联,或依赖关系时
实现步骤

案例

实现步骤:

//从响应结果中,获取城市名
var jsonData = pm.response.json()
var city =jsonData.weatherinfo.city

//将城市名写入到全局变量
pm.globals.set("glb_city",city)


4.

批量执行用例集

选中一个集合→run→执行

4.Postman测试报告

#完整的命令
newman run xxxx.json -e 环境变量文件 -d外部数据文件 -r html --reporter-html-report 第一个测试报告.html

#现在 终端 ,测试一下
newman run xxxx.jsom

#运行
newman run 批量执行测试用例.postman_collection.json
#保存
newman run 批量执行测试用例.postman_collection.json -r html --reporter-html-report 第一个测试报告.html

5.postman参数化

数据文件简介


导入外部 数据文件

编写csv文件→点击用例集→run→runner→select file→选中文件→点击预览,进行校验

编写json文件→

读取数据文件数据


案例

生成测试报告 6.项目实战(iHRM)

http://ihrm-test.itheima.net/#/settings/index

初始化项目环境 新建用例集

创建环境变量

添加环境

登录模块 登录成功接口

请求接口


断言

pm.test("断言响应状态码为 200", function () {
    pm.response.to.have.status(200);
});

pm.test("断言success的值为true", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.success).to.eql(true);
});

pm.test("断言code的值为10000", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(10000);
});

pm.test("断言message的值为 *** 作成功!", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql(" *** 作成功!");
});

pm.test("断言data的值为9811b176-7013-4d6f-bd3a-d4e8697762ae", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data).to.eql( "21fa8d87-9b52-4367-a968-0b7d8f285385");
});

其他接口共性分析

实现其他接口 员工管理模块 总析

提取令牌

//拼接data的值,添加Bearer和空格。组成合法令牌

//获取响应体
var jsonData =pm.response.json()

//提取data的值,保存在tmp_token中
var tmp_token = jsonData.data 

//拼接Bearer和空格到data值的前面 “Bearer”+“ ”+tmp_token
pm.environment.set("env_token","Bearer"+" " + tmp_token)

添加员工

注意保证手机号的唯一性

提取添加员工的id

//获取添加员工的响应体
var jsonData = pm.response.json()

//提取员工id
var tmp_id=jsonData.data.id 
// 设置到环境变量
pm.environment.set("env_emp_id",tmp_id)

查询员工
{{base_url}}/api/sys/user/:target
# :target 是路径参数

修改员工

查询员工列表

改url即可

批量运行测试用例

生成测试报告

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/738445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存