首页 > 其他分享 >测开学习路线笔记

测开学习路线笔记

时间:2024-07-24 22:29:15浏览次数:12  
标签:测开 笔记 路线 用例 测试用例 cookie 接口 测试 执行

Pytest

源码

  • 包含了很多插件

  • 入口点(调用插件)

如何搭建一个测试平台

  • Django在线编辑Excel、yaml文件

  • Pytest读取执行,生成测试报告、日志记录

  • Django展示结果和测试报告

如何开发一个Pytest插件

HOOK:约定

  • 查看源码hookspec.py

  • 查看文档

HOOK规则:

  • 被动调用(被pytest自动调用)

  • 掌握主动 通过@pytest.hookimpl(tryfirst=true)

  • 安全控制 hookwrapper

插件:按照约定,可来可走

Pytest中什么是测试通过的标准?什么是失败的标准?

  • 断言异常:判断测试失败

  • setup异常:判断测试出错

  • 没有异常:判断测试通过

创建一个新的插件

创建项目

1、创建一个新项目

2、创建新的虚拟环境

3、安装pdm

4、使用pdm init初始化项目

编写代码(略)

Pytest实战项目

版本控制
质量控制(black、isort、flake8)
  • 安装开发依赖pdm add block -d

    • black:代码格式化

    • isort:对依赖进行排序

    • flake8:分析潜在bug

需求分析
  • 梳理需求

    • 主要需求

      • 结果包含什么内容

        • 测试开始时间

        • 测试结束时间

        • 测试执行时长

        • 测试用例数量(成功与失败)

        • 成功率通过率

        • 测试报告的地址

        • 。。。。

      • 发送到哪里

        • 软件:个人/群

        • 微信:个人/群/公众号

      • 怎么发送

        • 加好友

      • 什么时候发送

编码思路
1、HOOK
  • 测试开始时自动执行

  • 测试结束时自动执行,记录结束时间、时长

  • 收集完测试用例之后执行,记录测试用例数量

  • 每一个用例结束之后自动执行,记录当前结果

2、API
3、测试用例(白盒)

单元测试:

  • 测试开始时间、结束时间、执行市场是否准确

  • 用例执行结果是否准确

  • 用例数量是否准确

  • 用例通过率是否准确

  • API或SMTP是否可用

集成测试:

  • 测试结束时,是否接受到了通知

编码实战

assert断言(判断对不对)

postman接口测试

接口类型

  • 基于TCP的全双工,例如:websocket等不适用postman

  • 基于HTTP的半双工,例如rest、graphQL

测试流程

1、准备

  • 理解需求

  • 了解接口

2、工具

  • postman

  • jmeter

3、用例

  • 基本正向用例

  • 有可选参数的扩展正向用例

  • 有效的反向用例

  • 无效的反向用例

  • 破坏性用例

4、执行

5、持续集成

6、报告

postman

接口分类:

  • 不需要鉴权(账号注册登录等等)

  • 数据的增删查改,需要token

  • admin,需要API key

token鉴权

  • 获取token,根据登录界面post请求后获取

  • 使用token

变量的使用

自动化断言

脚本实现

1、pm.test:创建测试用例

2、pm.expect:创建断言

内置的断言

断言的封装
  • 响应时长

  • 响应字节

  • 接口契约

    • 状态码

    • 数据格式

接口请求调试

控制台:

  • 记录请求,查看日志

  • 完成Js脚本的输出

数据驱动测试

数据驱动测试(DDT):

  • 测试用例测试数据进行分离

  • 通过增删改测试数据

  • 实现对测试用例的增删改

1、创建测试用例

2、测试数据改为变量

3、准备测试数据 csv/json格式

4、使用数据文件执行测试用例

导出测试用例

导出:

1、测试用例导出

2、全局变量导出

3、环境变量导出

统一导入:import

生成测试报告

newman执行测试用例之后自动生成报告

1、安装环境

  • nodejs

  • newman npm install -g newman

2、执行用例

newman run -h 使用命令

持续集成

CI/CD软件:

  • Jenkins

  • github action

1、打开Jenkins

2、添加任务

  • 项目描述

  • 指定工作目录

  • 添加构建步骤

  • 添加测试报告

  • 添加定时任务

与Pytest的区别

测试工具 VS 测试框架

能否测试接口 T N

能否测试web N N

能否生成报告 N Y

能否发送邮件、钉钉 N Y

能否调用外部工具 N Y

能否自动清理测试数据 N Y

Jmeter接口测试

Jmeter组件

1、测试计划:测试的起点

2、线程组:代表一定的用户

3、取样器:发送请求的最小单元

4、逻辑控制器:处理请求逻辑

5、前置处理器:

6、后置处理器:

7、断言:判断请求结果是否正常

8、定时器:延迟请求

9、配置原件:配置请求

10、监听器:收集测试结果

组件执行顺序

1 2 9 5 8 4 3 6 7 10

组件的作用域:

作用于同级、同级下的子组件、父组件

市面上的3类接口

  • 基于webservice协议接口,通过xml传输数据

  • 基于dubbo协议接口,通过json传输数据

  • 基于http协议接口,通过json传输数据

正则表达式:(.*?)

json提取器

  • $(根目录).(子节点)access_token

  • 取数组的值需要用下标

jmeter三种不同参数

  • 参数:参数放到url后面通过?传参,参数之间通过&分割

  • 消息体数据:json格式

  • 文件上传

加密参数接口

需要实现cookie鉴权的接口

cookie管理器管理cookie关联的原理(作用域在同级别组件):

1、jmeter第一次请求服务器的时候,如果服务器有通过响应头又返回的cookie,那么http cookie管理器就会保存这些cookie的值

2、jmeter第二-N次请求服务器的时候,http cookie管理器会自动把cookie通过cookie管理器自动传输给服务器,实现cookie关联

标签:测开,笔记,路线,用例,测试用例,cookie,接口,测试,执行
From: https://blog.csdn.net/ohligay/article/details/140674598

相关文章

  • 弦图学习笔记
    1.定义弦(chord):对于一个点数大于等于4的简单环,连接环上不相邻两点的边称作弦。弦图:对于无向图\(G\),如果其每个点数大于等于4的简单环都存在至少一条弦,则称这个图是弦图。这个定义等价于:图\(G\)的任何诱导子图不是\(K\)阶环(\(K\ge4\))。单纯点:对于任意的无向图......
  • 基于CAT的VBM和SBM计算学习笔记(一)VBM
    前言  基于体素的形态学方法(voxel-basedmorphometry,VBM),是大脑结构研究中最常见的指标。我刚开始学习fMRI数据处理时主要都聚焦在功能差异的研究,但接触了一批受外伤的被试,对其脑结构的改变产生兴趣,遂学习之。 VBM用T1计算,稳定性强;覆盖全脑,全面性强;而且其计算软件发......
  • 算法笔记|Day6哈希表基础II
    算法笔记|Day6哈希表基础II☆☆☆☆☆leetcode454.四数相加II题目分析代码☆☆☆☆☆leetcode383.赎金信题目分析代码☆☆☆☆☆leetcode15.三数之和题目分析代码☆☆☆☆☆leetcode18.四数之和题目分析代码☆☆☆☆☆leetcode454.四数相加II题目链接:leetco......
  • Living-Dream 系列笔记 第64期
    树的重心当\(u\)作为根时,其节点数最大的子树最小,则称\(u\)为树的重心。性质一:节点数最大的子树的节点数不超过\(\frac{节点总数}{2}\)。(反证法,若某重心\(u\)的节点数最大的子树的节点数超过\(\frac{节点总数}{2}\),则将其一个子节点提起来会更优)性质二:至多两个且一......
  • VDM学习笔记
    摘要在基本理解着证据下界和VAE后,学习VDM,主要是想自己理解顺畅整个模型的思路和推导过程(done)。内容组织:首先从宏观感受VDM的模型架构,并与HVAE进行比较,基本理解;然后讲解自己理解的整个模型建模过程和原因(《事后诸葛》,为了自己理解);指出VDM的三个重要等价解释,着重Score-Base......
  • Living-Dream 系列笔记 第63期
    树的中心当选取树上节点\(u\)为根时,最长链最短,则称\(u\)为树的中心。性质一:至多\(2\)个且一定相邻。性质二:一定位于树的直径上。性质三:若一棵树有多条直径,则它们必定交于树的中心。性质四:树的中心为根时,根到直径两端点分别为最长/次长链。U392706板子。......
  • 最全数据结构个人笔记【单向链表】
    1.链表基本概念链式存储的线性表,简称链表链表其实是由一个或者多个结构体通过指针指向的关系构成我们把每个结构体的变量称为节点,节点里面由两个成员组成一个是数据域,另外一个是指针域,指针域是用于存放下一个节点的地址以此类推,我们把这种存储方式称为链式存储2.链......
  • MySQL 学习笔记 基础(多表查询下,事务)
    多表查询 多表查询-子查询概念:SQL语句中嵌套SELECT语句,称为嵌套语句,又称子查询。SELECT*FROMt1WHEREcolumn=(SELECTcolumn1FROMt2);子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT的任何一个。根据子查询结果不同,分为:·标量子查询......
  • Java学习笔记(三)算术运算符、逻辑运算符、四种进制介绍
    Hii,mJinXiang⭐前言⭐本篇文章主要介绍Java算术运算符、逻辑运算符、四种进制介绍详细使用以及部分理论知识......
  • Java学习笔记(七)面向对象编程(中级部分)
    Hii,mJinXiang⭐前言⭐本篇文章主要介绍Java面向对象编程(中级部分)包、访问修饰符、封装、继承、super关键字、多态、向上(下)转型、equals、hashCode、断点调试等知识的详细使用以及部分理论知识......