背景介绍
管理中心是对终端进行展示和设置的产品,通过对电脑中的用户、文件、目录程序进行配置,进而实现信息安全保障。整个项目分管理中心端和终端两个部分,互相支持。管理中心是分两个部分,一个是linux里的服务,一个是web浏览器端。终端是部署到windows或者linux中的服务,有桌面端。目前我是从管理中心端开始的。
业务介绍
产品主要分为两个部分:
管理中心,新建策略,把策略配置下发给终端,管理文件、目录及U盘设置、软件设置,配置给终端。
架构介绍
管理中心:
语言:java、数据库:mysql,mongodb
终端:
语言:c、c++ 应用层内核层是c,界面是c++
数据库:sqlite3
运行环境:linux服务器、windows主机、虚拟机
配置策略,给终端配置策略
可信设置,包括非受控目录、可信进程、可信基准库、动态度量、静态度量
安全设置,异常进程审批、安全标记管理、USB外设控制、强制访问控制、自主访问控制
系统管理,包括用户管理、外设管理、授权管理
审计管理,包括审计信息查看备份、审计策略配置
测试方案
测试痛点1
目前测试基本都是手工测试,经常会出现同个产品仅修改其中一小部分,提交给测试后,测试需要测试全部流程,时间经常是比较紧张,导致集中加班进行测试,工作量重复比较多。
解决方案
将管理中心产品实现UI自动化。减少人工成本,提高测试效率。
代码结构:分为几个部分
1,业务逻辑,包含基类、页面类
2,用例,testcase,包含所有页面对应的用例,一个页面对应一个用例类,其中应用数据驱动,用例内的数据从对应类的yaml文件调用,调用方法写在工具类。
3,工具类,里面含有公共方法,比如查找元素find,查找多个元素 finds,等待wait,查询yaml文件数据方法
4,活动图
5,其他,配置文件pytest.ini,conftest.py,requirements.txt
6,数据库表类及连接数据库方法
本项目采用从数据库查询数据来进行校验。使用SQLaclmy库连接mysql数据库。
当前产品本身不支持其他机器查询,管理中心的服务器是安装在linux服务器上,在查询前,先修改下配置文件,再查询,考虑到目前测试都是在公司内部测试,交付给客户后不会再测试,采取了这种方式。
jenkins内设置:
源码管理:
构建用例执行:
测试报告展示:
技术总结
使用python语言,采用pytest+allure+jenkins+svn,使用selenium,可以定时进行管理中心产品的测试。
效果
目前刚实现登录、首页、非受控目录、配置策略共4个页面的自动化用例,能在几分钟内完成这四个页面的测试,效率提升50%
测试痛点2
目前产品的测试基本是功能的测试,没有对接口进行测试,在开发提测后只是通过手工测试进行,发现bug比较滞后,有些逻辑在界面测试不到,当前接口文档不全。
解决方案
实现管理中心的接口自动化,对接口进行测试,同时可以根据需要执行测试构建执行测试用例。没有详细的测试接口文档,可以通过抓包进行。
技术方法
Pytest+allure+jenkins+svn