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

文档序号:9417287阅读:来源:国知局
分支判断,当Act1n 为 addFileUser,则 URL 为 /Rule/addFileUser.act1n,请求方法为 P0ST,然后确定请求头中的其他参数,通常确定其可变参数referer,将字典类型Data参数值转化为添加用户文件规则实际请求的数据格式;或者当Act1n为getFileUser,则URL为/Rule/viewFileUser.act1n,请求方法为GET,然后确定请求头中的其他参数,通常确定其可变参数referer,将字典类型Data参数值转化为获取用户文件规则实际请求的数据格式,拼装在URL尾部;
然后确定请求头cookie中的sess1nID值,完成HTTP请求头和数据构造,根据给定的IP和端口建立HTTP连接,发送构造好的HTTP请求,接收HTTP请求响应数据并转存,关闭HTTP连接并将响应数据返回。
[0022]远程系统命令执行程序在本地脚本程序中的实现过程为:利用发送端和接收端,接收端运行在安全软件服务端,接收端创建socket对象,绑定本机端口,监听端口,等待发送端的连接请求,获取连接请求的socket对象,仓Il建连接处理线程,向线程函数传入连接请求的socket对象,直到用户终止进程,否则继续返回调用连接请求的socket对象;
参考图2,其中接收端实现的过程为:利用socket方法创建socket对象,使用bind方法绑定例子中本机的8111端口,不与常用端口冲突即可,使用Listen方法监听,设置接收请求的数量,例如为10,即可同时接收10个连接请求,调用accept方法获取连接请求的socket对象,调用thread的start_new_thread建连接处理线程,向线程函数传入连接请求的socket对象,直到用户终止进程,否则继续返回调用连接请求的socket对象;
参考图3其中连接处理线程处理连接请求的socket对象的过程为:调用连接请求socket对象的recv方法计算远程命令,通过recv方法返回值判断是否有数据可接收,若无,则连接处理线程结束,若有,则执行远程命令并返回命令执行的输出,为了使命令执行结果的判断更方便,同时兼容Windows和linux,在此利用Popen方法执行远程命令并返回命令执行的输出,则输出为标准输出和出错输出,若出错输出为空,设置标记为0,否则设置标记为1,标记为I时构造返回数据为:status:标记/noutput:\n Popen方法的返回值\n###,Popen返回的元组类型的前100个字符###0开头增加标记信息以标识命令执行是否成功,结尾增加结束符###以方便发送端进行结束判断,截取Popen返回值的前100个字符可以为了防止超长返回值带来的处理不便;
再调用socket对象的sendall方法将构造好的返回数据发送出去后继续调用连接请求socket对象的recv方法接收远程命令。
[0023]参考图4发送端运行在本地,传入参数为IP、端口和命令,内部实现过程为:调用socket模块的socket方法创建socket对象,调用connect方法向接收端发起连接请求,连接成功后调用sendall方法发送命令数据,调用recv方法接收返回数据,如接收到###结束符时退出循环,调用close方法关闭socket,将接收到的返回数据返回,否则继续接收返回数据。
[0024]应用中首先在Linux服务器IP为10.1.1.2,部署B/S架构的强制访问控制安全软件,假设Web服务与软件服务端绑定在同一 IP上,web服务端口为8443,然后运行远程系统命令执行程序接收端脚本,其中Windows系统需安装python解释器,Iinux系统自带。本次实施采用robot framework自动化测试开源框架,使用python语言。
[0025]然后在浏览器中打开安全软件的web配置界面并登录,然后使用浏览器的开发者工具查看请求cookie中的sess1nID值,假设为b9a941af87e36717。
[0026]在本地PC上,IP为10.1.1.3编写python脚本。调用规则配置方法,即利用本发明方法进行接收端的HTTP请求组装,传入参数:IP为10.1.1.2,端口为8443,sess1nID 为 b9a941af87e36717,其中 Act1n 为 addFileUser, Data 为{’user,:,ANY_USER’ , ’ filename’:’ /autotest’ , ’ rule’: [’ ReadOnly' ]},即所以用户对文件 /auotest 只有读权限。通过返回值判断是否配置成功,假设成功。然后调用远程系统命令执行程序发送端方法,传入参数:IP为10.1.1.2,端口为8111,命令为echo haha >> /autotest,即在文件/autotest最后追加写字符串haha,然后查看返回结果中的status的标记,如果为I则表明echo命令执行失败,规则配置正常生效,如果为O则表明echo命令执行成功,规则配置未正常生效。至此完成一个简单的自动化用例。
【主权项】
1.一种针对B/S架构安全软件的自动化测试方法,其特征是通过对B/S架构安全软件的强制访问控制规则配置接口 API化,被Python脚本程序调用;通过强制访问控制软件服务端所在系统部署的远程系统命令接收执行程序,使远程强制访问控制规则的验证操作在本地脚本程序中完成; 强制访问控制规则配置接口 API化的实现过程为:抓取每个强制访问控制规则配置操作的HTTP请求,抽取需要输入的参数形成API接口 ;使用python脚本发送强制访问控制规则配置HTTP请求报文完成后,验证规则是否生效; 远程系统命令执行程序在本地脚本程序中的实现过程为:利用发送端和接收端,接收端运行在安全软件服务端,接收端创建socket对象,绑定本机端口,监听端口,等待发送端的连接请求,获取连接请求的socket对象,创建连接处理线程,向线程函数传入连接请求的socket对象,直到用户终止进程,否则继续返回调用连接请求的socket对象; 发送端运行在本地,发送端调用socket对象,向接收端发起连接请求,发送命令数据,接收返回的数据,如接收到结束符退出循环,关闭socket,将接收到的返回数据返回,否则继续接收返回数据。2.根据权利要求1所述的一种针对B/S架构安全软件的自动化测试方法,其特征是所述HTTP请求包括:请求方法、URL、请求头、提交的数据;抽取的输入参数包括IP、端口、sess1nID、Act1n为实际配置动作、Data为提交的数据。3.根据权利要求2所述的一种针对B/S架构安全软件的自动化测试方法,其特征是所述HTTP请求在API内部根据Act1n进行分支判断,确定具体的URL、请求方法及请求头中的其他数据,确定Data的具体格式,进行HTTP请求报文的组装。4.据权利要求2或3所述的一种针对B/S架构安全软件的自动化测试方法,其特征是所述HTTP请求报文的组装过程为:向规则配置API接口传入抽取输入的参数,根据Act1n进行分支判断,确定请求头cookie中的sess1nID值,完成HTTP请求头和数据构造,根据给定的IP和端口建立HTTP连接,发送构造好的HTTP请求,接收HTTP请求响应数据并转存,关闭HTTP连接并将响应数据返回。5.根据权利要求4所述的一种针对B/S架构安全软件的自动化测试方法,其特征是所述Act1n进行分支判断的过程为:根据Act1n的参数,确定URL的实际配置操作确定的相对路径,确定请求方法及请求方法中的其他参数,将Data参数值转化为相应的用户文件规则实际请求的数据格式。6.根据权利要求5所述的一种针对B/S架构安全软件的自动化测试方法,其特征是所述 Act1n 进行分支判断时当 Act1n 为 addFileUser,则 URL 为 /Rule/addFileUser.act1n,请求方法为POST,然后确定请求头中的其他参数,将Data参数值转化为添加用户文件规则实际请求的数据格式;或者当Act1n为getFileUser,则URL为/Rule/viewFileUser.act1n,请求方法为GET,然后确定请求头中的其他参数,将Data参数值转化为获取用户文件规则实际请求的数据格式,拼装在URL尾部。7.根据权利要求1或5所述的一种针对B/S架构安全软件的自动化测试方法,其特征是连接处理线程处理连接请求的socket对象的过程为:调用连接请求socket对象的recv方法计算远程命令,通过recv方法返回值判断是否有数据可接收,若无,则连接处理线程结束,若有,则执行远程命令并返回命令执行的输出,构造返回数据,调用socket对象的sendall方法将构造好的返回数据发送出去后继续调用连接请求socket对象的recv方法接收远程命令。8.根据权利要求7所述的一种针对B/S架构安全软件的自动化测试方法,其特征是利用Popen方法执行远程命令并返回命令执行的输出,则输出为标准输出和出错输出,若出错输出为空,设置标记为0,否则设置标记为1,标记为I时构造返回数据,调用socket对象的sendall方法将构造好的返回数据发送出去后继续调用连接请求socket对象的recv方法接收远程命令。
【专利摘要】本发明公开一种针对B/S架构安全软件的自动化测试方法,属于软件自动化测试领域;本发明通过对B/S架构安全软件的强制访问控制规则配置接口API化,使其可以被Python脚本程序调用;在此基础上整理参数格式文档后,配合开源的自动化测试管理框架,可使无开发经验的测试人员完成自动化用例编写和维护,减小了用例编写和管理难度,解决了双机交叉操作难以自动化的问题;可以对Windows和Linux系统完美兼容,减小了自动化系统复杂度,更加方便测试人员部署、使用;同时如安全软件后续版本对web接口进行小的调整,只需略微修改规则配置方法内部实现即可,用例仍可正常使用,减小了维护成本。
【IPC分类】G06F11/36
【公开号】CN105138454
【申请号】CN201510522827
【发明人】刘雁鸣
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年12月9日
【申请日】2015年8月24日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1