以下是jktest的文档
jktest 是自动化测试平台,涵盖4端自动化测试(接口自动化+浏览器自动化+app自动化+小程序自动化)和性能测试等,能快速落地自动化测试,以实现持续测试持续集成,加速软件的高质量交付,提升整个研发团队的效率。
通过扩展Locust/Selenium/Appium/Minium技术,统一使用yaml来写4端的自动化测试脚本,无需写一行python代码,yaml作为dsl封装了4端常用的操作(如发http请求、上下左右滑动、放大缩小、校验、提取变量等),也支持if/for语义,大大降低了自动化测试的学习成本、开发成本与维护成本,极大的提高了测试伙伴的效率,从而实现低成本的持续测试。 简单来说,不用招测开工程师,直接用功能测试伙伴就能做四端自动化测试。
- 接口自动化与压测:HttpBoot
- 浏览器自动化:SeleniumBoot
- app自动化:AppiumBoot
- 小程序自动化:MiniumBoot
通过web界面来维护与执行4端自动化测试的yaml脚本
- 使用测试计划可触发自动化测试用例执行,有3种触发类型:手动触发、定时触发、url触发;
- 不同端的用例可以关联调用,如一个流程可能包含浏览器后台操作与app操作;
- 执行测试计划后出测试报告,详细记录每个步骤(用例)的执行结果与细节。
- 系统: 每个独立部署的 jktest 即称为一套系统。
- 权限机制:基于角色的访问控制(RBAC)
- 管理员:能登录与操作 jktest 系统的用户,要绑定角色才有操作权限。
- 权限:代表可访问的资源(如数据或功能),有2类权限:菜单与规则(后端接口)。
- 角色:代表一种授权,可理解为多个权限的集合,每个角色拥有不同的权限。
- 项目:jktest 系统以项目维度来管理各种类型测试数据,各个项目间数据隔离。
- 脚本:用yaml编写的自动化测试脚本,需要用HttpBoot/SeleniumBoot/AppiumBoot/MiniumBoot技术来执行,被用例引用。
- 用例:自动化测试用例,要指定yaml脚本与自动化技术类型(HttpBoot/SeleniumBoot/AppiumBoot/MiniumBoot)。 用例不能单独执行,需挂在计划中才能执行。
- 环境:诸如开发环境、测试环境、预发布环境、生产环境等,用于包含特定环境相关的变量,这些变量用于执行用例。
- 计划:自动化测试计划,需指定该计划要执行的用例与环境(变量)。 计划是自动化测试的真正触发主体,有3种触发类型:1 手动触发 2 定时触发 3 url触发
- 定时作业: 定时作业,即是配置了
定时
字段的计划。一个定时作业,对应一个定时器,定时器默认是关闭状态,需要手动启动后才能定时触发计划执行。 - 任务:代表一次计划执行。有4种状态:0未执行 1执行中 2 成功 4失败
- 报告:代表计划执行(任务)的结果,记录计划中所有用例的执行结果与细节。
python + flask + sqlalchemy
同时也对上述框架做了扩展与规范:
- model层抽取了
ModelMixin
基类,增加了对关联查询、序列化、逻辑与物理删除、增删改规范调用、增删改事件等的支持; - 新增装饰器
@transaction
与@classTransaction
来包装事务处理; - 新增装饰器
require_login
来校验登录,require_role
来校验角色,require_rule
来校验权限,require_token
来校验token(token用在远程执行计划的url中); - 仿jwt来实现token机制;
- 定制蓝图约定,来简化蓝图注册:逐个扫描目录
controllers
下的python文件,注册其中有@bp.route
修饰的方法来做蓝图; - 支持不同环境加载不同的yaml配置文件。
vue3
mysql + redis
用我实现的第二代代码生成器,支持对以下技术的代码生成:
-
支持小程序
-
支持uniapp
-
支持2个前端框架: layui2.5, vue3.
-
支持3个后端语言与框架
语言 | 框架 |
---|---|
kotlin/java | jkmvc |
python | flask2.2+sqlalchemy |
php | CodeIgnier3 |
- requests + HttpBoot;
- locust + LocustBoot;
- selenium + SeleniumBoot;
- appium + AppiumBoot;
- minum + MiniumBoot