基于Selenium 的信息化运维工作应用

2019-10-15 06:55沈意吉唐松张一帆上海市计量测试技术研究院
数码世界 2019年10期
关键词:存储设备控件浏览器

沈意吉 唐松 张一帆 上海市计量测试技术研究院

引言

Selenium 作为浏览器自动化测试框架通常用于B/S 架构应用系统程序和功能的测试,然而也能用于信息化日常运维场景,解决运维中重复和繁琐的工作。在此方面的应用可以减少人员和维护成本的投入,通过python 脚本调用Selenium 库可如真实用户操作B/S 架构应用一样。本文将通过对天珣内网安全风险管理与审计系统中移动存储设备自动授权的实例研究来阐述Selenium 对信息化日常运维工作的意义。

1 应用需求

天珣内网安全风险管理与审计系统(以下简称天珣系统)(版本号 V6.6.9.6)作为一款内网合规管理产品,具有准入控制、安全防护、补丁管理、非法外联、移动存储、终端审计、桌面运维、认证管理等功能。

移动存储设备授权管理为本文应用需求的重点,此功能对已提交的合规移动存储进行终端计算机授权。因天珣系统未提供终端计算机分组功能,在授权移动存储时,必须手动选择每台可使用移动存储的终端计算机名(数量大于300 台)。若存在N 个用户在不同时点提交移动存储授权申请,操作人员须及时响应每次申请,必将手动选择N×300 台,结合天珣系统M 分钟无响应操作注销当前用户、操作人员因疲劳、疏忽误选、漏选等因素,造成了移动存储授权管理的日常运维工作效率低,维护人员离不开移动存储设备授权管理界面,用户等待审批时间过长等问题。

Selenium 浏览器自动化测试框架可以完美解决这类人机交互问题,并且天珣系统为B/S 架构,满足Selenium 的应用条件。

2 程序设计

2.1 天珣系统信息收集

移动存储授权操作流程的梳理如图1 所示,针对每个页面收集各类元素的位置。html 元素的位置可用元素的xPath 值,使用火狐浏览器的开发工具箱中元素选择工具选择需要的html 控件,在开发工具箱查看器中找到控件html 代码,右键选择复制再选择XPath,即可得到各个元素、值和操作如表1 所示,用于后续通过Selenium的函数来定位元素和赋值。

图1

表1

2.2 程序设计思路

2.2.1 登录系统

通过webdriver.Firefox()生成一个WebDriver 类的实例,并启动系统自带的Firefox 浏览器,通过get(url)函数给浏览器传递一个URL,浏览器加载页面。

find_element(by_mode,value_WebElement_xPath) 返回登录页面user 和password 控件的WebElement 两个实例,再使用send_keys(*value)将用户名和密码传递给浏览器。

find_element 函数获取登录页面提交按钮的实例,调用click()函数完成登录。登录使用的用户名和密码通过读取配置文件信息,提高灵活性。

2.2.2 授权移动设备

点击天珣系统主页由左边菜单导航边栏后,主页由三部组成,分别是左边菜单导航边栏,右上方分菜单页面和右下方移动存储设备授权页面。从html 源码分析得到右下方移动存储设备授权页面实际地址(http://ip:port/desktopmgr/StorageMgr.aspx),直接调用get(url)使浏览器跳转此页面。

移动存储设备通过多行(单页最多显示22 行,其中第一行为标题行,最后一行为页码行)8 列的表格方式显示。如图2 所示,判断第六列为“未认证”、第三和四列的非空项后点选第一列多选控件按钮使被认证的移动存储设备选中。

图2

对选中移动存储设备个数判断:等于1 的直接获取设备编号栏中移动设备的元素实例并调用click()函数跳转至单个移动设备授权页面;大于1 的则用click()函数点击批量选中设备按钮跳转至批量移动设备授权页面。

在授权页面完成操作权限的选择,并用click()函数点击“查看及编辑”链接,如下图3 所示。

图3

对象类型选择主机名,程序通过依次读取可使用移动存储设备的主机列表(csv 文件)中主机名与页面中显示主机名字比对并点击主机名前的多选框控件。若以后需要增加主机只需在主机表中添加主机名即可(主机名必须与系统显示主机相同)。部分代码和局部运行结果如下图4、5 所示。

图4

图5

3 程序效果

通过Selenium 自动化框架开发此程序在1 分40 秒内完成了移动设备的授权工作,完全解放了员工在系统中选择主机名的不便之处。

通过程序输出日志文件可以获取程序每个节点操作情况和是否匹配主机名成功的信息,为调试和排错提供了便利。

4 程序改进

程序设计未考虑使用图形化、数据库和定时多线程方式运行。

5 程序开发环境

win7 sp1、Firefox 浏览器、Firefox驱动、python3.6 和Selenium3.12。

猜你喜欢
存储设备控件浏览器
基于C++Builder 的电子邮件接收程序设计*
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
微软发布新Edge浏览器预览版下载换装Chrome内核
反浏览器指纹追踪
浅析计算机硬件发展史
浅析铁路视频监控存储设备设计
浏览器
Spreadsheet控件在Delphi数据库系统中的编程与应用
防止USB接口泄密