自动化安全测试方法、装置、电子设备和可读存储介质制造方法及图纸

技术编号:19023253 阅读:19 留言:0更新日期:2018-09-26 19:01
本发明专利技术实施例提供一种自动化安全测试方法、装置、电子设备和可读存储介质,通过在配置文件中填写待测信息、基于Controller层编写脚本来实现安全测试,解除了安全测试对UI层的依赖,缩短了项目的测试周期。该方法包括:将所有待测单元的待测信息填写在配置文件中,所述待测信息包括方法名和期望结果;基于Controller层编写所述待测单元的脚本;初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。

【技术实现步骤摘要】
自动化安全测试方法、装置、电子设备和可读存储介质
本专利技术涉及计算机
,尤其涉及一种自动化安全测试方法、装置、电子设备和可读存储介质。
技术介绍
传统的安全测试一般有三种方式,第一种是利用开源或商用的安全测试工具进行自动化的安全扫描;第二种是基于黑盒的安全测试方法,主要以手工的方式在页面上输入设计好的用例进行安全测试;第三种是利用静态代码扫描工具或者是静态代码走读进行的静态白盒测试。但是第一种测试方法误报率太高,第二种测试方法耗时比较长,并且由于无法剥离对UI(UserInterface,用户界面)层的强依赖导致在进行安全测试过程中一旦UI层未开发完成或UI层不稳定导致安全测试无法进行。现有技术方案实现安全测试的方式是:用户通过在用户页面上对表单等输入框进行填写后提交给Controller等三层去进行业务处理,利用BurpSuite(是用于攻击Web应用程序的集成平台)等工具对请求进行拦截,篡改、重放的一系列渗透过程,或者是利用AWVS(AcunetixWebVulnerabilityScanner,是一款网络漏洞扫描工具)等自动化扫描工具,对用户页面进行爬虫后,进行自动化安全扫描。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:(1)前端页面还未开发完成的情况下无法进行正常的安全测试。(2)前端页面元素经常变化的情况下导致测试结果不稳定和自动化脚本维护成本增加。(3)被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下无法进行测试。
技术实现思路
有鉴于此,本专利技术实施例提供一种自动化安全测试方法、装置、电子设备和可读存储介质,能够将传统的白盒测试、安全测试和自动化测试的思想融合到一起,利用测试框架对Controller层进行白盒安全测试,并通过读取配置文件中维护好的测试类、测试方法,已经设计好的入参来动态组织测试场景,通过此种方式,可以剥离在安全测试过程中对UI的依赖。为实现上述目的,根据本专利技术的一个方面,提供了一种自动化安全测试方法。本专利技术实施例的一种自动化安全测试方法,包括:将所有待测单元的待测信息填写在配置文件中;所述待测信息包括方法名和期望结果;基于Controller层编写所述待测单元的脚本;初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。可选地,所述执行配置文件中各方法名对应的测试方法以得到实际结果包括:读取当前场景下所述配置文件中的待测信息,将所述待测信息依次进行组装、匹配及初始化后,将初始化后的待测信息放入字典中;执行字典中各方法名对应的测试方法以得到实际结果。可选地,将所述待测信息依次进行组装、匹配及初始化包括:组装测试用例:对当前场景下配置文件中的类名和方法名进行去重,并对去重后的属于同一类名的多个方法名进行组装;对组装后的方法名进行排序分类;所述待测信息还包括场景名、类名和用于测试方法的入参;组装入参:对入参进行组装;匹配及初始化:对组装后的测试用例与组装后的入参进行匹配,所有需要执行的测试用例与入参匹配结束后,通过动态的反射技术将需要测试的类和入参转化成对象后,将该入参反序列化为对象。可选地,还包括:基于Controller层编写所述待测单元的脚本之后,判断Service层是否需要解耦,当需要解耦时,利用mock技术将Service层进行解耦。可选地,所述方法还包括:对编写好的所述待测单元的脚本进行持续集成;所有待测单元测试完成后生成测试报告。可选地,初始化测试框架的方式包括通过Maven私服集成和直接将Jar包复制到测试框架。可选地,所述配置文件为Excel表格。为实现上述目的,根据本专利技术的另一方面,提供了一种自动化安全测试装置。本专利技术实例的一种自动化安全测试装置,包括:测试用例设计模块,用于将所有待测单元的待测信息填写在配置文件中;所述待测信息包括方法名和期望结果;测试脚本编写模块,用于基于Controller层编写所述待测单元的脚本;测试用例执行模块,用于初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。可选地,所述执行配置文件中各方法名对应的测试方法以得到实际结果为:读取当前场景下所述配置文件中的待测信息,将所述待测信息依次进行组装、匹配及初始化后,将初始化后的待测信息放入字典中;执行字典中各方法名对应的测试方法以得到实际结果。可选地,所述测试用例执行模块包括:测试用例组装模块,用于对当前场景下配置文件中的类名和方法名进行去重,并对去重后的属于同一类名的多个方法名进行组装;对组装后的方法名进行排序分类,所述待测信息还包括场景名、类名和用于测试方法的入参;入参组装模块,用于对入参进行组装;匹配及初始化模块,用于对组装后的测试用例与组装后的入参进行匹配,所有需要执行的测试用例与入参匹配结束后,通过动态的反射技术将需要测试的类和入参转化成对象后,将该入参反序列化为对象。可选地,所述测试用例执行模块,还用于判断Service层是否需要解耦,当需要解耦时,利用mock技术将Service层进行解耦。可选地,所述装置还包括:持续集成模块,用于对编写好的所述待测单元的脚本进行持续集成;测试报告生成模块,用于在所有待测单元测试完成后生成测试报告。可选地,初始化测试框架的方式包括通过Maven私服集成和直接将Jar包复制到测试框架。可选地,所述配置文件为Excel表格。为实现上述目的,根据本专利技术的再一方面,提供了一种电子设备。本专利技术实施例的一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术实施例的一种自动化安全测试方法。为实现上述目的,根据本专利技术的再一方面,提供了一种非暂态计算机可读存储介质。本专利技术实施例的一种非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本专利技术实施例的一种自动化安全测试方法。根据本专利技术的技术方案,上述专利技术中的一个实施例具有如下优点或有益效果:通过对Controller层进行白盒安全测试以及读取配置文件中维护好的测试类、测试方法,已经设计好的入参来动态组织测试场景,解除了测试用例代码对UI层的依赖,使环境更加独立,易于维护和使用,缩短了项目的测试周期,使安全测试可以更早的介入到软件开发周期中;通过利用mock技术来实现对依赖模块的解耦,使得被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下人就可以进行测试,大大提升了自动化脚本的稳定性;通过将动态白盒安全测试加入进持续集成,从而使开发人员尽早地发现集成错误,提高人员效率;为自动化安全测试回归工作提供了有力保障,大大提升安全测试质量。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的自动化安全测试方法的主要步骤的示意图;图2是根据本专利技术实施例的自动化安全本文档来自技高网...

【技术保护点】
1.一种自动化安全测试方法,其特征在于,包括:将所有待测单元的待测信息填写在配置文件中;所述待测信息包括方法名和期望结果;基于Controller层编写所述待测单元的脚本;初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。

【技术特征摘要】
1.一种自动化安全测试方法,其特征在于,包括:将所有待测单元的待测信息填写在配置文件中;所述待测信息包括方法名和期望结果;基于Controller层编写所述待测单元的脚本;初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。2.根据权利要求1所述的方法,其特征在于,所述执行配置文件中各方法名对应的测试方法以得到实际结果包括:读取当前场景下所述配置文件中的待测信息,将所述待测信息依次进行组装、匹配及初始化后,将初始化后的待测信息放入字典中;执行字典中各方法名对应的测试方法以得到实际结果。3.根据权利要求2所述的方法,其特征在于,将所述待测信息依次进行组装、匹配及初始化包括:组装测试用例:对当前场景下配置文件中的类名和方法名进行去重,并对去重后的属于同一类名的多个方法名进行组装;对组装后的方法名进行排序分类;所述待测信息还包括场景名、类名和用于测试方法的入参;组装入参:对入参进行组装;匹配及初始化:对组装后的测试用例与组装后的入参进行匹配,所有需要执行的测试用例与入参匹配结束后,通过动态的反射技术将需要测试的类和入参转化成对象后,将该入参反序列化为对象。4.根据权利要求1所述的方法,其特征在于,还包括:基于Controller层编写所述待测单元的脚本之后,判断Service层是否需要解耦,当需要解耦时,利用mock技术将Service层进行解耦。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:对编写好的所述待测单元的脚本进行持续集成;所有待测单元测试完成后生成测试报告。6.根据权利要求1或2所述的方法,其特征在于,初始化测试框架的方式包括通过Maven私服集成和直接将Jar包复制到测试框架。7.根据权利要求1或2所述的方法,其特征在于,所述配置文件为Excel表格。8.一种自动化安全测试装置,其特征在于,包括:测试用例设计模块,用于将所有待测单元的待测信息填写在配置文件中;所述待测信息包括方法名和期望结果;测试脚本编写模块,用于基于Controller层编写所述待测单元的脚本;测试用例执行模块,用于初始化并...

【专利技术属性】
技术研发人员:王亚光
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1