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条用例: ...
不管测试平台有没有实际用处,具备测试平台开发能力,是测试开发工程师的必备技能之一。 测试平台的实际收益有多少,仁者见仁智者见智,这是一个辩证问题。测试平台开发能力是否具备,一清二楚,这是一个现实问题。我们能做的只有提高自己,解决现实问题。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 前言 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数据库可视化工具,只需要下载即可,无需安装,解压就用:: https://sqlitestudio.pl/ 由于会用到models.JSONField,SQLite默认不兼容,所以需要下载sqlite3.dll文件替换下: https://www.sqlite.org/download.html 根据Python版本选择,比如我的windows安装的Python38-32,下载了sqlite-dll-win32-x86-3340100.zip这个软件包,解压后将D:\Program Files (x86)\Python38-32\DLLs\sqlite3.dll替换。 创建Vue项目 设置npm淘宝镜像: npm config set registry https://registry.npm.taobao.org 安装Vue CLI: npm install -g @vue/cli 创建teprunner-frontend项目: ...
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一键创建性能测试; 接口定义依赖关系设置; 接口自动化包括以下功能: 创建多接口串联的场景化测试; 从接口列表中快速导入接口或接口用例; 跨项目的场景引用功能; 客户端SSL证书认证配置; 场景用例支持引用环境; 支持条件、循环、事务、等待等多种类型的控制器; 支持正则匹配、jsonpath、xpath等多种类型的断言规则; 支持正则匹配、jsonpath、xpath等多种类型的参数提取; 支持BeanShell、Python、Groovy、JavaScript等多种语言的前后置脚本; 场景变量提供多种类型; 提供Mock数据和JMeter变量表达式; 环境配置增加区分模块、路径两种方式添加域名; 增加全局前置脚本、全局后置脚本; 基于插件机制实现其他协议; 支持上传并引用自定义Jar包; 支持查看场景用例变更历史; 手动执行、定时任务、Jenkins插件触发等多种执行方式; 串行、并行两种批量执行方式自由选择; 支持指定测试资源池远程执行; 可多场景串行、并行执行; 场景一键创建性能测试; 场景一键复制; 场景批量执行可自由选择独立报告或集合报告; 场景一键添加到测试计划; 除此之外还有: ...
将key-value的JSON数据,转换为insert的SQL语句,进而实现网页数据存储到数据库。
测试平台,有人说它鸡肋,有人说它有用,有人说它轮子,众说纷纭,不如从自身出发,考虑是否要做测试平台:
『 tep is a testing tool to help you write pytest more easily. Try Easy Pytest! 』
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 设计理念 聚焦于任务调度,接口自动化80%本地编写,20%交由平台管理。 如果使用pytest做接口自动化,那么个人认为最好的编写工具是PyCharm,任何低代码测试平台都无法取代。当然不会代码,或者不使用pytest,那低代码测试平台,或者yaml,甚至excel写自动化用例,都是可以接受的。而在使用pytest这个特定场景里面,要做平台化,平台的功能就需要仔细斟酌。既然编写用例最好使用PyCharm,平台也就只能专注于用例编排和任务调度,即创建任务,关联用例,批量运行,以及定时,并行,通知等。 pytestx正是基于此理念设计的一款纯粹的任务调度平台。 平台架构 tep1.0.0的延续 tep1.0.0版本已经封版,在pytestx中对它进行了延续。 从pypi到git tep是上传到pypi的,通过pip命令安装,使用tep startproject命令创建项目脚手架,代码结构分为项目代码和tep代码。改造后的tep只有项目代码,存放在: https://gitee.com/dongfanger/tep-project.git 也就是说,在这个项目中,能看到整个tep全貌。之前的tep内核代码,比如fixtures自动寻找、内置fixture、环境变量等,全部迁移到了项目代码里面,尤其是conftest.py的文件内容。pip install tep顺带安装的依赖包,也整理到了requirements.txt,按照说明安装即可。 pytest-html替换allure 由重到轻,化繁为简,pytest-html能够满足数据+日志的报告需要,最新的V3.2.0版本的界面尚可。诚然allure漂亮,但安装Java、下载Allure、配置环境变量、安装pytest-allure、添加pytest hook还是相对麻烦。更重要的是,要支持平台在线查看报告,减少存储占用,pytest-html无疑是更好的选择。 下载脚手架 既可以从使用git clone下载代码,也可以从页面下载,就像spring.io那样: fastapi到django 之前的示例代码是调用的fastapi启动的应用,pytestx则将示例代码的接口换成了Django自身的mock接口。 teprunner的延续 pytestx的基础代码是从teprunner来的,对数据库设计、代码规范、项目结构做了优化。 任务管理 一、同步项目 同步项目,是把项目配置的Git仓库地址和分支,更新到本地沙箱中,项目之间完全隔离。 并把用例落库: 二、任务关联用例 创建任务,任务关联用例,就形成了新的用例集。 三、容器化运行 当前是假容器,未真正引入Docker,所谓容器,是指每次运行,都将用例拉取到新的目录,批量执行: 四、生成报告 pytest命令生成html报告,存放于reports,借助于Django挂载页面,从页面点击,在线查看报告: 体验平台 下载源码:https://github.com/dongfanger/pytestx 安装依赖:前端(npm install)后端(pip install -r requirements.txt) 启动服务:前端(npm run serve)后端(python manage.py runserver) 即可畅快体验。 学习交流 添加微信cekaigang,加入交流群,欢快讨论吧。 参考资料: https://github.com/dongfanger/pytestx