上海-悠悠
上海-悠悠 专注python自动化测试
展开
-
《Pytest + Yaml 框架开发与使用》插件使用与插件开发二合一课程
为什么会开这个专题?目前越来越多的自动化测试人员在学习使用 pytest 框架了,但是大家对 pytest 框架的学习大部分同学都是局限于如何编写测试用例,如何使用 fixtures,以及生成测试报告等基本的使用。大家对 pytest 插件的了解知道的很少,只知道 pip 安装一个 pytest 插件就可以用了。对于 hook 钩子的使用也是一知半解,大部分但是从网上复制了改一改。网上对 ...原创 2023-07-05 16:55:00 · 94 阅读 · 0 评论 -
pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知
allure报告和企业微信,钉钉,飞书机器人反馈原创 2024-01-03 14:44:57 · 1343 阅读 · 0 评论 -
pytest-yaml 测试平台-3.创建执行任务定时执行用例
当项目用例编写完成后,需设置执行策略,可以用到定时任务设置每天几点执行。或者间隔几个小时执行一次。原创 2023-10-27 13:01:34 · 911 阅读 · 0 评论 -
pytest-yaml 测试平台-2.支持上传YAML格式用例
pytest-yaml 测试平台用例结构是遵循pytest-yaml-yoyo 框架用例规则。如果你之前已经有用 pytest-yaml-yoyo 框架完成了yaml 用例的编写,可以直接在平台上导入yaml 用例。原创 2023-10-24 11:58:12 · 493 阅读 · 0 评论 -
pytest-yaml 测试平台-1.新增项目和用例(有平台体验地址)
基于pytest-yaml-yoyo 框架写的接口测试平台,在web网页平台上维护yaml测试用例,执行用例,并查看allure报告。原创 2023-10-24 11:57:33 · 703 阅读 · 0 评论 -
pytest + yaml 框架 - 65.Pycharm 设置 yaml 格式用例模板,高效写用例
初学者对yaml 格式不太熟悉,自己写yaml用例的时候,总是格式对不齐,或者有些关键字会忘记。于是我们可以在pycharm上设置用例模块,通过快捷方式调用出对应的模块,达到高效写用例的目的。原创 2024-06-15 11:21:56 · 179 阅读 · 0 评论 -
pytest + yaml 框架 -64.新增depend 关键字,导入其它yaml用例
有小伙伴提到,test_a.yml 中已经写了几个流程,test_b.yml 中希望能接着test_a.yml去写用例,于是就需要先导入test_a.yml用例。为了满足此需求,v1.6.3版本 在config 中新增 depend 关键字。原创 2024-05-15 08:08:59 · 466 阅读 · 0 评论 -
pytest + yaml 框架 -63.新增全局请求参数配置verify和headers
最近有小伙伴提到如何全局添加请求参数verify=False 和 全局请求添加头部参数如:{"x-token": "xxx"}之前的版本可以用fixture解决,v1.5.8版本可以支持在config中配置原创 2024-05-15 08:07:16 · 241 阅读 · 0 评论 -
pytest + yaml 框架 -62.支持yaml和json2种格式用例
支持yaml和json2种格式用例原创 2024-06-15 11:18:24 · 186 阅读 · 0 评论 -
pytest + yaml 框架 -60.git+jenkins+allure+钉钉通知反馈
当我们自动化用例写完后,接下来就是如何运行用例,生成报告以及反馈通知了。如果你们公司已经有jenkins了,那么直接集成到jenkins上构建你的自动化任务是非常方便的。原创 2023-12-15 20:46:44 · 2740 阅读 · 0 评论 -
pytest + yaml 框架 -59.用例失败重跑机制pytest-rerunfailures
有些接口可能不太稳定,第一次跑的时候由于网络原因或者其它原因失败,但是重新跑2次又成功了。对于这种需要重新跑几次的场景,可以使用用例失败重跑机制,需安装pytest-rerunfailures 插件。原创 2023-12-11 19:59:01 · 2336 阅读 · 0 评论 -
pytest + yaml 框架 -58.运行报告总结summary.json
用例运行结束后,在本地生成summary.json 文件,总结运行结果。v1.5.1版本更新内容:1.解决参数化,中文在控制台输出问题2.保存用例结果summary.json原创 2023-11-09 11:03:13 · 809 阅读 · 0 评论 -
pytest + yaml 框架 -57.用例前置和后置操作执行sql
前面一篇已经介绍在用例中可以查询以及在断言中实现sql,本篇讲解在用例的前置和后置操作中执行sql原创 2023-10-10 10:44:22 · 461 阅读 · 0 评论 -
pytest + yaml 框架 -56. 输出日志优化+allure报告优化
v1.4.8 版本优化接口请求和响应输出日志,生成的allure报告也按步骤优化request和response详情日志原创 2023-10-10 10:43:35 · 685 阅读 · 0 评论 -
pytest + yaml 框架 -55. raw 不转义模板语法
在yaml 文件中,设置的引用变量语法是`${var}`, 最近有小伙伴提到一个需求:请求参数的内容需要有特殊符号`${var}`,希望不被转义,不要引用变量,直接用原始数据即可。原创 2023-10-10 10:42:27 · 307 阅读 · 0 评论 -
pytest + yaml 框架 -54. variables 可以引用同一层级变量
前言v1.4.5 新增功能。同一层级variables 变量中,可以引用前面的变量了config 中 variables 可以引用同一层级变量用例中 variables 可以引用同一层级变量引用同一层级变量最近有部分学员遇到的问题,在同一个层级设置变量,后面的变量引用前面的变量(v1.4.4之前的版本不支持)config 中变量引用示例config: name: yoyo...原创 2023-08-29 19:54:00 · 56 阅读 · 0 评论 -
pytest + yaml 框架 -53.yaml 用例规范与全部关键字总结
前言v1.4.4 版本新增对yaml 用例格式校验,不合法的用例格式不会被执行,避免出现用例格式不合法导致的报错。全部关键字总结config 中可用关键字关键字可支持类型功能说明name可选 str没什么用,仅描述当前yaml 用例的名称base_url可选 str, 支持格式:http://、https://、ws://、wss://当前yaml用例公...原创 2023-08-19 08:27:00 · 93 阅读 · 0 评论 -
pytest + yaml 框架 -52.支持 websocket 协议
前言v1.4.2 版本支持 websocket 协议python 操作websocket 协议环境准备pip3 install websocket-clientpip3 install websockets基本代码示例from websocket import create_connectionimport jsonurl = 'ws://localhost:8081/ws...原创 2023-07-17 19:51:00 · 54 阅读 · 0 评论 -
pytest + yaml 框架 -51.一套测试环境配置多个数据库解决方案
前言最近有小伙伴提到,一套测试环境会有多个数据库,该如何解决?config 中配置多个数据库连接对象之前的案例中是在config配置管理配置一个DB_INFO 就可以直接使用内置方法了。现在可以在config 中配置多个数据库连接对象的实例只有一个数据库的情况,可以配置的DB_INFODB_INFO = { "host": "127.0.0.1", "...原创 2023-07-14 07:58:00 · 75 阅读 · 0 评论 -
pytest + yaml 框架 -50.支持 redis 数据库配置
前言v1.4.1 新增 redis 数据库配置redis 基本操作环境准备pip instal redispython 操作redis 基本代码import redis# 连上redisr = redis.StrictRedis( host='服务器ip', port=6379, decode_responses=True)# 设置一个键值对r.set('name...原创 2023-07-13 16:38:00 · 53 阅读 · 0 评论 -
pytest + yaml 框架 -49.allure报告自定义内容
前言v1.4.0 版本支持allure报告自定义内容用例添加 allure 描述用例中可以通过dynamic 添加以下内容allure.dynamic.featureallure.dynamic.linkallure.dynamic.issueallure.dynamic.testcaseallure.dynamic.storyallure.dynamic.titleall...原创 2023-07-10 19:48:00 · 83 阅读 · 0 评论 -
pytest + yaml 框架 -48.仅收集用例失败错误信息和log日志
前言有小伙伴提到能不能只收集用例失败的情况下日志和错误信息,每个用例都收集日志内容太多了,没法直观的看错误的用例信息。v1.3.9 版本实现此功能,在原有的功能上新增一个log日志文件,仅收集用例错误的日志。log 日志收集用例执行完会默认生成2个日志文件全量日志,每个用例的日志都会收集仅失败的用例日志使用示例config: name: demotest_1: ...原创 2023-07-07 20:13:00 · 49 阅读 · 0 评论 -
pytest + yaml 框架 -47.parameters参数化支持笛卡尔积
前言v1.3.8 版本对 parameters 参数化格式重新做了定义,支持笛卡尔积了。当然以前旧版本的格式还是继续兼容。parameters 参数化新版本对 parameters 参数化重新做了定义,简化了步骤,更加清晰简洁.1.只有一个变量需要参数化的情况test_p1.ymlconfig: parameters: x: ["a", "b", "c"]test_...原创 2023-07-06 08:53:00 · 64 阅读 · 0 评论 -
pytest + yaml 框架 -46.支持模块级别和用例级别参数化
前言对parameters 功能做了优化,支持模块级别和用例级别参数化config 中 parameters 参数化,作用域是整个模块级别用例中 parameters 参数化,作用域只针对单个用例v1.3.7 版本优化此功能模块级别参数化config 中 parameters 参数化,作用域是整个模块级别, test_a.yaml 文件示例config: fixtures:...原创 2023-07-04 22:41:00 · 29 阅读 · 0 评论 -
pytest + yaml 框架 -45.用例分层设置变量默认值
前言最近有小伙伴提到API层的接口参数很多,全部设置为变量,后面用例引用会写很多值,会很费精力。希望能在定义变量的时候,给默认值,这样在用例里面可以选择性的给部分参数设置变量值。API层定义接口先在API层定义接口,请求参数使用default() 给变量默认值api/post.ymlname: postrequest: method: POST url: http://ht...原创 2023-06-29 10:13:00 · 54 阅读 · 0 评论 -
pytest + yaml 框架 -44.支持pytest-repeat插件重复执行用例
前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。使用pip安装pytest-repeatpip install pytest-repeatpytest-repeat 基本使用test_rp.py 示例内...原创 2023-06-27 22:56:00 · 18 阅读 · 0 评论 -
pytest + yaml 框架 -43.支持自定义函数提取返回结果
前言在 yaml 用例中提取返回结果,可以支持以下三种表达式jmespath 取值语法: body.keyname.keynamejsonpath 语法: $..keynamere 正则语法以上三种表达式可以满足 99% 的测试场景需求了,但是有些特殊的需求通过表达式无法取到,为了满足另外1%的需求,可以自定义函数取值。此功能在v1.3.6版本实现场景描述有个小伙伴给我提了个...原创 2023-06-26 22:46:00 · 118 阅读 · 0 评论 -
pytest + yaml 框架 -42.支持 mock 功能
前言前面已经通过代理实现了抓包自动生成 yaml 用例的功能,通过代理也可以实现 mock 功能。mock 有2种场景:1.直接拦截发出去的请求,还未到达服务端,模拟自定义返回结果2.发出去的请求,服务端有反回,拦截返回的结果,篡改返回内容,模拟自己需要的数据拦截发出去的请求先看第一种场景:直接拦截发出去的请求,还未到达服务端,模拟自定义返回结果mt_mock.py 内容如下f...原创 2023-06-26 11:50:00 · 22 阅读 · 0 评论 -
pytest + yaml 框架 -41.postman 和 python代码自动录制成yaml用例
前言python代码 和postman 写的接口也能通过录制功能自动生成yaml格式用例了。python 代码运行后自动录制环境准备参考前面一篇https://www.cnblogs.com/yoyoketang/p/17495374.html在项目本地新建一个recorde.py ,名称随便定义from pytest_yaml_yoyo.mitm_http import Recode...原创 2023-06-25 11:44:00 · 23 阅读 · 0 评论 -
pytest + yaml 框架 -40.录制接口转 yaml 用例实现
前言pytest + yaml 框架基本不用写 python 代码,只需写yaml 文件用例就能实现接口自动化。现在引入接口录制功能,连 yaml 文件也不用写了,点点点就能生成 yaml 用例文件了。录制功能在v1.3.4版本上实现pip install pytest-yaml-yoyo环境准备录制功能环境没给大家预装,考虑大家 python 版本不太一样,可能有的人装不上。官方文...原创 2023-06-21 08:55:00 · 52 阅读 · 0 评论 -
pytest + yaml 框架 -39.新增--start-project命令快速创建项目demo结构
前言新增 --start-project 命令, 帮助初学者快速创建项目 demo 结构, 并自动创建几个简单的用例。创建项目demo结构执行以下命令pytest --start-project运行日志(venv) D:\demo\untitled_start>pytest --start-projectcreate ini file: D:\demo\untitled_st...原创 2023-06-19 22:11:00 · 28 阅读 · 0 评论 -
pytest + yaml 框架 -38.企业微信机器人通知
前言v1.3.2版本 支持企业微信机器人发送报告通知了。pip install pytest-yaml-yoyo获取企业微信机器人token企业机器人相关接口可以看官方文档https://developer.work.weixin.qq.com/document/path/91770创建群聊机器人获取到webhook访问地址https://qyapi.weixin.qq.com/c...原创 2023-06-16 20:59:00 · 37 阅读 · 0 评论 -
pytest + yaml 框架 -37.mark 标记对用例运行时长断言
前言pytest 执行用例的时候,我们希望对用例的运行时间断言,当用例执行时长大于预期标记此用例失败。@pytest.mark.runtime(1) 运行时长单位是秒此插件已打包上传到pypi https://pypi.org/project/pytest-runtime-yoyo/1.0.0/环境准备pip install pytest-yaml-yoyo此功能在v1.3.1 版本上...原创 2023-06-12 15:45:00 · 32 阅读 · 0 评论 -
pytest + yaml 框架 -36.mark 标记功能实现
前言pytest可以支持对用例自定义标记, 可以把用例按自己的需要归类标记,比如按用例优秀级,标记一些smoke冒烟测试用例。pytest 标记基本使用test_m.py 用例内容import pytest@pytest.mark.smokedef test_login(): passdef test_something(): pass@pytest....原创 2023-06-09 22:13:00 · 21 阅读 · 0 评论 -
pytest + yaml 框架 -35.根据不同运行环境生成全局token
前言我们在使用自动化测试框架的时候,经常会遇到一个需求,希望在全局用例中,仅登录一次,后续所有的用例自动带上请求头部token 或者cookies。我们可以自定义fixture 更新内置的 requests_session, 在请求头部添加token 来实现全局登录。基本使用参考前面这篇https://www.cnblogs.com/yoyoketang/p/16924506.html全...原创 2023-06-08 11:42:00 · 60 阅读 · 0 评论 -
pytest + yaml 框架 -34.接口 sign 签名请求预处理
前言一般公司对外的接口都会用到 sign 签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后修改请求参数乱请求。关于sign签名的可以参考前面一篇的介绍https://www.cnblogs.com/yoyoketang/p/11742187.html接口sign签名一登陆的接口请求为例,如下接口抓包报文信息,其中sign的签名规则如下第一步,拼...原创 2023-06-08 09:55:00 · 44 阅读 · 0 评论 -
pytest + yaml 框架 -33.参数化读取文件路径优化
前言针对小伙伴提出参数化时读取外部文件,在项目根路径运行没问题,但是进入到项目下子文件夹运行用例,就会找不到文件问题做了优化。关于参数化读取外部文件相关内容参考前面这篇[pytest + yaml 框架 -25.参数化数据支持读取外部文件txt/csv/json/yaml](pytest + yaml 框架 -25.参数化数据支持读取外部文件txt/csv/json/yaml)安装以下版本...原创 2023-06-07 23:16:00 · 30 阅读 · 0 评论 -
pytest + yaml 框架 -32.re 正则解析返回结果
前言pytest-yaml-yoyo 插件可以支持3种表达式提取接口返回结果,jsonpath 和 jmespath 适合解析返回的json数据。非json 数据的结果可以用re 正则表达式取值。re 正则取值访问我的博客地址https://www.cnblogs.com/yoyoketang/test_re.yml 用例文件内容# 上海悠悠 wx:283340479# blog...原创 2023-06-07 19:48:00 · 31 阅读 · 0 评论 -
pytest + yaml 框架 -31.JMESPath解析json数据
前言前面学了 jsonpath 可以很好的解析 json 数据,提取出我们想要的内容,对于平常的基本工作没太大的问题,但有一点点小遗憾。jsonpath 的 python 库功能并不是很强大,对于一些高级语法并不支持,不支持过滤器使用正则表达式,一些常用的函数也不支持。JMESPath 库也可以解析json,资料很全,功能也很强大。JMESPath 简介JMESPath 是 JSON的...原创 2023-05-29 12:59:00 · 51 阅读 · 0 评论 -
pytest + yaml 框架 -30.jsonpath 表达式提取接口返回结果
前言pytest-yaml-yoyo 插件可以支持3种表达式提取接口返回结果。本篇详细介绍jsonpath 表达式提取json格式的返回结果。jsonpath 表达式基础语法关于jsonpath的入门基础可以查看前面这篇https://www.cnblogs.com/yoyoketang/p/13216829.html相关语法可以参考下表JSONPath描述$跟节点...原创 2023-05-26 09:09:00 · 89 阅读 · 0 评论