管理中心项目--22期毕业设计

背景介绍

管理中心是对终端进行展示和设置的产品,通过对电脑中的用户、文件、目录程序进行配置,进而实现信息安全保障。整个项目分管理中心端和终端两个部分,互相支持。管理中心是分两个部分,一个是linux里的服务,一个是web浏览器端。终端是部署到windows或者linux中的服务,有桌面端。目前我是从管理中心端开始的。

业务介绍

产品主要分为两个部分:

管理中心,新建策略,把策略配置下发给终端,管理文件、目录及U盘设置、软件设置,配置给终端。

架构介绍

管理中心
语言:java、数据库:mysql,mongodb
终端
语言:c、c++ 应用层内核层是c,界面是c++
数据库:sqlite3
运行环境:linux服务器、windows主机、虚拟机

配置策略,给终端配置策略

可信设置,包括非受控目录、可信进程、可信基准库、动态度量、静态度量

安全设置,异常进程审批、安全标记管理、USB外设控制、强制访问控制、自主访问控制

系统管理,包括用户管理、外设管理、授权管理

审计管理,包括审计信息查看备份、审计策略配置

测试方案

测试痛点1

目前测试基本都是手工测试,经常会出现同个产品仅修改其中一小部分,提交给测试后,测试需要测试全部流程,时间经常是比较紧张,导致集中加班进行测试,工作量重复比较多。

解决方案

将管理中心产品实现UI自动化。减少人工成本,提高测试效率。

代码结构:分为几个部分
image

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

测试痛点3解决方案

jenkins 这里有很大问题呀。

问题1:

环境激活,如果是windows 使用 call venv\Scripts\activate,然后后面正常执行pytest命令就OK

问题2:

为什么不直接执行testcases 这个文件夹呢?如果是筛选执行,也应该是按业务线打tag。然后执行

嗯嗯,好的,jenkins这里是昨天提交了最新的用例,还没来得及调试完。
问题1已解决,谢谢老师
问题2,我修改下,后续按照tag来选择性执行