自动化测试平台
自动化测试平台的目的:
自动化测试平台旨在解决开发自测过程中的关键痛点,即测试环境部署、测试用例分布式执行等。
基于自动化测试平台,开发同学可以低成本的完成功能自测,不需要投入精力在部署测试环境,关注测试环境争用等情况,快速得到测试结论。
自动化测试服务最终会呈现为一套服务体系,对用户来说这套服务可以提供对接多个产品,配置多个测试场景,并提供多样化的测试执行方式,最终在一些测试管理和结果呈现上实现一体化。
自动化测试平台有哪些模块:
自动化平台主要实现容器自动调度、环境自动部署、用例统一管理、任务定制执行等功能,具体功能说明如下:
容器管理:
支持测试集群的统一管理,按需创建和回收测试环境
原则上环境信息对用户透明,自动配置环境,无需用户手动介入
提供一个环境列表的显示功能,包括容器IP、规格、产品、使用人等信息
提供一个测试环境的操作功能,支持手动创建、删除测试环境,方便开发调试测试用例
环境部署:
支持测试环境的自动部署
根据产品类型,预置模板,使用时选择部署产品+部署方式,支持部署不同类型的产品
提供pipeline功能,支持自定义部署方式
支持实时显示测试环境部署进度,提供完整的输出/异常信息
参数配置:
支持配置参数的统一管理
支持对测试相关的参数配置的编辑修改并持久化
存储多组参数配置,使用标签区分,方便在部署环境时快速调用
测试用例:
支持快速配置测试用例,由开发同学进行低成本的测试用例编写
提供一个测试用例的DEMO模板,提供针对被测产品的测试基类和公用Library,用例编写仅关注业务逻辑
支持自定义测试用例集,用例分组
测试执行:
支持测试用例集的自定义规则执行,关联测试代码分支、测试用例集、被测代码分支
支持测试任务的手动执行和被动触发执行
支持测试任务的定时执行
插件支持:
支持测试代码行覆盖率/增量覆盖率统计
支持后续扩展性能测试,对接JMeter
测试报告:
支持定制化的测试报告
支持测试报告的实时展示
支持测试结果的自动发送,经由邮件
SSO的流程
客户端发起请求,重定向到登录界面。
用户登录后跳转至原有页面,跳转后在请求参数中增加了jumpto和code参数。
服务端检验code是否合法,如果合法,将返回用户的账号名和ticket,不合法则返回步骤1。(code有效期为30秒,并且一个code只能验证一次)
服务端将ticket写入cookie,表示用户的身份凭证。
带有ticket的用户访问网站时,服务端需要调用check_ticket接口,判断ticket是否有效,有效则正常访问,无效则返回步骤1。
base-test-platform-master项目
1、最核心的业务逻辑都在service/util/util.py中,util.py中最核心的业务就是TestUtil。按照我的理解,自动化平台首先Docker模块调用ALC模块创建容器,创建完成后使用Env模块使用脚本部署环境,在通过Jenkins模块调用git模块构建任务,Jenkins的配置依靠XML模块实现。
打个比方就是我需要测试我自己的排序算法,我先创建一个容器,再部署jdk1.8的环境,然后使用Jenkins调用我Gitlab下的分支,不同的分支是不同的测试用例,运行Jenkins后得到允许的结果。
2、btp/urls调用的url和具体的api的映射。
3、环境部署脚本在base-test-platform-master\service\util\deploy中,很详细。