tep 用户手册帮你从 unittest 过渡到 pytest
unittest 和 pytest 是 Python 的 2 个强大的测试框架,经常用来做 UI 自动化或接口自动化。unittest 是 PyCharm 的默认集成工具,也是我们大多数人入门自动化的首选框架。pytest 提供了更丰富的功能,相对的上手难度也要高一点。如果学了 pytest 后,想快速用 pytest 写项目,用于工作实践,那么可以试试我写的这款测试工具:tep,try easy pytest。
unittest 和 pytest 是 Python 的 2 个强大的测试框架,经常用来做 UI 自动化或接口自动化。unittest 是 PyCharm 的默认集成工具,也是我们大多数人入门自动化的首选框架。pytest 提供了更丰富的功能,相对的上手难度也要高一点。如果学了 pytest 后,想快速用 pytest 写项目,用于工作实践,那么可以试试我写的这款测试工具:tep,try easy pytest。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 Pairwise 算法是什么 对于以下测试场景: 浏览器:M,O,P 操作平台:W(windows),L(linux),i(ios) 语言:C(chinese),E(english) 该如何设计功能测试用例呢? 根据数学统计分析,73%的缺陷(单因子是 35%,双因子是 38%)是由单因子或 2 个因子相互作用产生的。19%的缺陷是由 3 个因子相互作用产生的。也就是说,大多数的 bug 都是条件的两两组合造成的。 Pairwise 算法是 L. L. Thurstone 在 1927 年首先提出来的,他是美国的一位心理统计学家。Pairwise 算法基于两两组合,过滤出性价比高的用例集。它的思路是:如果某一组用例的两两组合结果,在其他组合中均出现,就删除该组用例,从而精简用例。 对于上述测试场景,可以通过笛卡尔积设计 18 条两两组合的测试用例: 1,M W C 2,M W E 3,M L C 4,M L E 5,M I C 6,M I E 7,O W C 8,O W E 9,O L C 10,O L E 11,O I C 12,O I E 13,P W C 14,P W E 15,P L C 16,P L E 17,P I C 18,P I E 对于第 18 条用例P I E来说,两两组合是PI ,PE ,IE,PI在 17 号,PE在 16 号,IE在 12 号出现过,所以第 18 条用例可以过滤掉。按照这个算法继续过滤,最终剩下 9 条用例: ...
不管测试平台有没有实际用处,具备测试平台开发能力,是测试开发工程师的必备技能之一。 测试平台的实际收益有多少,仁者见仁智者见智,这是一个辩证问题。测试平台开发能力是否具备,一清二楚,这是一个现实问题。我们能做的只有提高自己,解决现实问题。
电子书网站由 AI 实现,Claude Code+DeepSeek-V4-Pro。技术栈 Python+MkDocs,主题 Read the Docs,静态托管 GitHub Pages。具有中文搜索功能。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 前言 2021 年,测试平台如雨后春笋般冒了出来,我就是其中一员,写了一款 pytest 内核测试平台,在公司落地。分享出来后,有同学觉得挺不错,希望能开源,本着“公司代码不要传到网上去,以免引起不必要麻烦”的原则,只能在家从头写一个,边重新梳理代码边温习巩固知识点,以学习交流为目的,定义为“学习版”。 功能展示 登录 接口自动化 接口自动化–Dashboard: 接口自动化–环境变量: 接口自动化–fixtures: 接口自动化–用例管理: 接口自动化–用例管理–编辑用例: 接口自动化–测试计划: 接口自动化–语法说明: 小工具 小工具–共享脚本: 小工具–HTTP 状态查询: 后台管理 后台管理–用户管理 后台管理–项目管理 本文开发内容 登录,登出 首页,修改密码,个人信息 后台管理,用户管理 JWT 认证 本文先打个基础,既是测试平台基本结构,也可以作为 CMS 基础框架,定制开发各种小型项目。 技术栈 Node.js 12.16.3 Vue 4.5.11 Python 3.8 Django 3.1.3 Django REST framework 3.12.2 SQLite 3 IDE 编辑器推荐 PyCharm 旗舰版,既能写 Django 也能写 Vue 项目。数据库使用 Django 自带 SQLite ,省去安装 MySQL 和 Navicat/Workbench 麻烦,轻量级开发。SQLiteStudio 为 SQLite 数据库可视化工具,只需要下载即可,无需安装,解压就用:: ...
EasyPytest 测试平台,帮你高效管理 Pytest 测试用例。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 项目简介 japi项目,是一个接口自动化平台开发项目,由【交流群】招人共建,基于 JMeter,参考 MeterSphere,以学习为目的,完成一个 SpringBoot+Vue 技术栈的纯粹的接口自动化平台开发。 项目成员 经过"填写人员分工表"以后,最终有 38 人参与了本次项目: 刚哥、布鲁、嘉宥、守正、大刚、风雨、奉孝、大姚、畅月、渔夫、小禹、钰琪、天湖、迷龙、肥涵、胖子、局长、呼呼、明亮、安宁、木棉、番茄、玥玥、哈瑞、虚竹、十五、阿新、卡罗、大白、库昊、左右、小涌、古风、玉洁、小韩、小卷、千凝、昆明。 随着项目进行,后续“提交学习总结”等环节层层递进,真正留下来的项目成员,会在 GitHub 的 README 中署名。 在填表时收集了大家的历史经验,这里汇总整理了一下,供参考: “Vue+Django 写过测试平台;SpringBoot 写过后端应用;Python 小工具开发;Python+Pytest+Requests 搭建接口自动化框架;Python+Unittest 或 Pytest 自动化测试框架搭建及脚本开发;各类开源自动化测试平台搭建,如:HttpRunnerManager、流马、Yapi、Sonic 等;js+Django2 实现 UI 自动化测试平台;使 Testng 框架进行接口测试;Vue+fastapi 写过测试平台;python+selenium UI 自动化;python+httprunner,接口文档解析自动生成字段校验用例;python+RobotFramework 做过 UI;Java 做过单元测试,熟悉基础语法;学过 JavaSE,JavaEE,实战经验不多;Python Pyqt GUI 工具开发;Python 接口自动化、APP 自动化框架设计及编码;独立负责主导 Python+Locust 性能测试;三方库和标准库:unittest、pytest、appium、selenium、request、httprunner;画过简单的 html、css;App UI 自动化框架搭建:pytest+appium+allure+jenkins 接口自动化框架搭建:pytest+request+allure+jenkins 二次开发及维护过 flask+vue 接口测试平台;二次开发及维护过 springboot+angularUI 测试平台;Pytest+Playwright UI 自动化脚本编写;” 我总结了几个关键字:Vue、Django、SpringBoot、Flask、FastAPI、ElementUI、RobotFramework、脚本开发、工具开发、平台开发、接口自动化、UI 自动化、APP 自动化。 项目计划 招募,人员分工,需求分析,设计,编码,测试,上线。 由于是以学习为目的,加上都是业余时间投入,也有其他事情要忙,所以该项目不会像真正项目那样,设置里程碑和交付节点,会给足够的学习时间,战线拉得比较长,过程大于结果。 需求分析 MeterSphere 官方给出的功能列表,接口自动化相关的模块有接口定义和接口自动化。 接口定义包括以下功能: 在线添加并编辑接口定义; 以树状形式展示项目的模块及对应接口; 支持 HTTP、Dubbo、SQL、TCP 类型接口请求; 支持通过 MeterSphere Json、Postman、Swagger 等多种格式文件快速导入接口,Swagger 可通过 URL 定时同步; 支持接口快捷调试; 根据接口定义快速配置 HTTP、TCP 协议 Mock 服务; API 列表、CASE 列表、文档模式多种模式灵活切换; 接口页面 API、TEST、CASE、MOCK 多种操作灵活切换; 测试环境信息管理功能; 单接口用例支持引用环境; 支持正则匹配、jsonpath、xpath 等多种类型的断言规则; 支持正则匹配、jsonpath、xpath 等多种类型的参数提取; 支持 BeanShell、Python、Groovy、JavaScript 等多种语言的前后置脚本; 支持前置 SQL、后置 SQL; 支持上传并引用自定义 Jar 包; 支持查看接口及用例变更历史; 手动执行、定时任务、Jenkins 插件触发等多种执行方式; API、CASE 一键复制; CASE 一键创建性能测试; 接口定义依赖关系设置; ...
将 key-value 的 JSON 数据,转换为 insert 的 SQL 语句,进而实现网页数据存储到数据库。
测试平台,有人说它鸡肋,有人说它有用,有人说它轮子,众说纷纭,不如从自身出发,考虑是否要做测试平台:
『 tep is a testing tool to help you write pytest more easily. Try Easy Pytest! 』