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