一种针对b/s架构安全软件的自动化测试方法

文档序号:9417287阅读:543来源:国知局
一种针对b/s架构安全软件的自动化测试方法
【技术领域】
[0001 ] 本发明公开一种针对B/S架构安全软件的自动化测试方法,属于软件自动化测试领域。
【背景技术】
[0002]强制访问控制(Mandatory Access Control—MAC),用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。强制访问控制主体通常指用户,或代表用户意图运行进程或设备,是访问操作的主动发起者,是系统中信息流的启动者,可以使信息流在实体之间流动。主体有时也会成为访问或受控的对象,如一个主体可以向另一个主体授权,一个进程可能控制几个子进程等情况,这时受控的主体或子进程也是一种客体,客体通常是指信息的载体或从其他主体或客体接收信息的实体。
[0003]B/S架构即浏览器和服务器结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。B/S架构的强制访问控制安全软件,是指在主机的内核层增加文件、进程、注册表的强制访问控制规贝1J,使得用户对文件、进程、注册表进行访问时受到对应规则约束,从而达到安全防护目的的软件,且规则的配置过程是通过web界面完成。
[0004]而强制访问控制安全软件的测试需要在web界面配置规则,然后在服务器上进行文件读、写、删除等操作,二者需要交叉操作,消耗大量时间和精力;客体和权限组合复杂,验证难度大,但是现有的自动化工具大多基于录制,维护成本较高,无法很好的进行双机交叉操作。本发明提出一种针对B/S架构安全软件的自动化测试方法,通过对B/S架构安全软件的强制访问控制规则配置接口 API化,使其可以被Python脚本程序调用,在无需与安全软件开发人员沟通的情况下即可顺利进行,且实现方法简单;在此基础上整理参数格式文档后,配合开源的自动化测试管理框架,可使无开发经验的测试人员完成自动化用例编写和维护,减小了用例编写和管理难度,解决了双机交叉操作难以自动化的问题,同时支持分布式自动化用例执行,节约了时间;也可以对Windows和Linux系统完美兼容,减小了自动化系统复杂度,更加方便测试人员部署、使用;同时如安全软件后续版本对web接口进行小的调整,只需略微修改规则配置方法内部实现即可,用例仍可正常使用,减小了维护成本。

【发明内容】

[0005]本发明针对现有的自动化强制访问控制安全软件的测试工具大多基于录制,维护成本较高,无法很好的进行双机交叉操作的问题,提供一种针对B/S架构安全软件的自动化测试方法,具有自动化转化迅速、跨平台、易于使用、支持分布式自动化用例执行的优点。
[0006]本发明提出的具体方案是: 一种针对B/S架构安全软件的自动化测试方法,通过对B/S架构安全软件的强制访问控制规则配置接口 API化,被Python脚本程序调用;通过强制访问控制软件服务端所在系统部署的远程系统命令接收执行程序,使远程强制访问控制规则的验证操作在本地脚本程序中完成;
强制访问控制规则配置接口 API化的实现过程为:抓取每个强制访问控制规则配置操作的HTTP请求,抽取需要输入的参数形成API接口 ;使用python脚本发送强制访问控制规则配置HTTP请求报文完成后,验证规则是否生效;
远程系统命令执行程序在本地脚本程序中的实现过程为:利用发送端和接收端,接收端运行在安全软件服务端,接收端创建socket对象,绑定本机端口,监听端口,等待发送端的连接请求,获取连接请求的socket对象,创建连接处理线程,向线程函数传入连接请求的socket对象,直到用户终止进程,否则继续返回调用连接请求的socket对象;
发送端运行在本地,发送端调用socket对象,向接收端发起连接请求,发送命令数据,接收返回的数据,如接收到结束符退出循环,关闭socket,将接收到的返回数据返回,否则继续接收返回数据。
[0007]所述HTTP请求包括:请求方法、URL、请求头、提交的数据;抽取的输入参数包括IP、端口、sess1nID、Act1n为实际配置动作、Data为提交的数据。
[0008]所述HTTP请求在API内部根据Act1n进行分支判断,确定具体的URL、请求方法及请求头中的其他数据,确定Data的具体格式,进行HTTP请求报文的组装。
[0009]所述HTTP请求报文的组装过程为:向规则配置API接口传入抽取输入的参数,根据Act1n进行分支判断,确定请求头cookie中的sess1nID值,完成HTTP请求头和数据构造,根据给定的IP和端口建立HTTP连接,发送构造好的HTTP请求,接收HTTP请求响应数据并转存,关闭HTTP连接并将响应数据返回。
[0010]所述Act1n进行分支判断的过程为:根据Act1n的参数,确定URL的实际配置操作确定的相对路径,确定请求方法及请求方法中的其他参数,将Data参数值转化为相应的用户文件规则实际请求的数据格式。
[0011]所述Act1n进行分支判断时当Act1n为addFileUser,则URL为/Rule/addFileUser.act1n,请求方法为P0ST,然后确定请求头中的其他参数,将Data参数值转化为添加用户文件规则实际请求的数据格式;或者当Act1n为getFileUser,则URL为/Rule/viewFiIeUser.act1n,请求方法为GET,然后确定请求头中的其他参数,将Data参数值转化为获取用户文件规则实际请求的数据格式,拼装在URL尾部。
[0012]连接处理线程处理连接请求的socket对象的过程为:调用连接请求socket对象的recv方法计算远程命令,通过recv方法返回值判断是否有数据可接收,若无,则连接处理线程结束,若有,则执行远程命令并返回命令执行的输出,构造返回数据,调用socket对象的sendall方法将构造好的返回数据发送出去后继续调用连接请求socket对象的recv方法接收远程命令。
[0013]利用Popen方法执行远程命令并返回命令执行的输出,则输出为标准输出和出错输出,若出错输出为空,设置标记为0,否则设置标记为1,标记为I时构造返回数据,调用socket对象的sendall方法将构造好的返回数据发送出去后继续调用连接请求socket对象的recv方法接收远程命令。
[0014]本发明的有益之处是:本发明在无需与安全软件开发人员沟通的情况下即可顺利进行,且实现方法简单,可快速完成规则配置接口的API化。在此基础上整理Act1n和Data对应的参数格式文档后,配合开源的自动化测试管理框架,可使无开发经验的测试人员完成自动化用例编写和维护,减小了用例编写和管理难度,解决了双机交叉操作难以自动化的问题,同时支持分布式自动化用例执行,节约了时间;远程系统命令执行程序也可以对Windows和Linux系统完美兼容,减小了自动化系统复杂度,更加方便测试人员部署、使用;同时如安全软件后续版本对web接口进行小的调整,只需略微修改规则配置方法内部实现即可,用例仍可正常使用,减小了维护成本。
【附图说明】
[0015]图1强制访问控制规则配置API接口实现流程示意图;
图2远程系统命令执行程序接收端实现流程示意图;
图3远程系统命令执行程序接收端的连接处理线程工作流程示意图;
图4远程系统命令执行程序发送端实现流程示意图。
【具体实施方式】
[0016]结合附图对本发明做进一步说明。
[0017]B/S架构的强制访问控制安全软件,是指在主机的内核层增加文件、进程、注册表的强制访问控制规则,使得用户对文件、进程、注册表进行访问时受到对应规则约束,从而达到安全防护目的的软件,且规则的配置过程是通过web界面完成。robot framework是一款python编写的功能自动化测试开源框架,支持关键字驱动,测试人员可以使用Python创建自己需要的测试库,:robot framework通过加载测试库抽象出关键字,用户使用关键字来进行用例的编写和执行。
[0018]一种针对B/S架构安全软件的自动化测试方法,通过对B/S架构安全软件的强制访问控制规则配置接口 API化,被Python脚本程序调用;通过强制访问控制软件服务端所在系统部署的远程系统命令接收执行程序,使远程强制访问控制规则的验证操作在本地脚本程序中完成;
强制访问控制规则配置接口 API化的实现过程为:抓取每个强制访问控制规则配置操作的HTTP请求,抽取需要输入的参数形成API接口 ;使用python脚本发送强制访问控制规则配置HTTP请求报文完成后,验证规则是否生效;
其中HTTP请求包括:请求方法、URL、请求头、提交的数据;
请求方法主要根据实际配置操作内容确定,比如获取规则表操作,一般为GET,添加、删除、修改规则一般为POST ;
URL中主要由IP、端口、根据实际配置操作确定的相对路径组成;
请求头中主要可变参数为cookie中的sess1nID,referer等,其中使用sess1nID可规避登录界面验证码等问题,其他参数一般比较固定;
提交的数据,即Data,主要根据实际配置操作内容确定。
[0019]抽取的输入参数包括IP、端口、sess1nID、Act 1n为实际配置动作、Data。Act1n根据实际操作动作自行命名,比如添加文件强制访问规则定义为addFileUser,Data根据Act1n进行变化,数据结构封装为统一格式,可以利用python字典格式,以减小接口的复杂度。
[0020]HTTP请求在API内部根据Act1n进行分支判断,确定具体的URL、请求方法及请求头中的其他数据,确定Data的具体格式,进行HTTP请求报文的组装。
[0021]参见图1,以 Act1n 为 addFileUser 或者 Act1n 为 getFileUser 为例,HTTP请求报文的组装过程为:向规则配置API接口传入参数,根据Act1n进行
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1