测开学习路线笔记

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关联

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值