CN108572911A - 自动化安全测试方法、装置、电子设备和可读存储介质 - Google Patents

自动化安全测试方法、装置、电子设备和可读存储介质 Download PDF

Info

Publication number
CN108572911A
CN108572911A CN201710150227.8A CN201710150227A CN108572911A CN 108572911 A CN108572911 A CN 108572911A CN 201710150227 A CN201710150227 A CN 201710150227A CN 108572911 A CN108572911 A CN 108572911A
Authority
CN
China
Prior art keywords
test
configuration file
name
ginseng
measured
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710150227.8A
Other languages
English (en)
Inventor
王亚光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710150227.8A priority Critical patent/CN108572911A/zh
Publication of CN108572911A publication Critical patent/CN108572911A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

自动化安全测试方法、装置、电子设备和可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化安全测试方法、装置、电子设备和可读存储介质。
背景技术
传统的安全测试一般有三种方式,第一种是利用开源或商用的安全测试工具进行自动化的安全扫描;第二种是基于黑盒的安全测试方法,主要以手工的方式在页面上输入设计好的用例进行安全测试;第三种是利用静态代码扫描工具或者是静态代码走读进行的静态白盒测试。但是第一种测试方法误报率太高,第二种测试方法耗时比较长,并且由于无法剥离对UI(User Interface,用户界面)层的强依赖导致在进行安全测试过程中一旦UI层未开发完成或UI层不稳定导致安全测试无法进行。
现有技术方案实现安全测试的方式是:用户通过在用户页面上对表单等输入框进行填写后提交给Controller等三层去进行业务处理,利用BurpSuite(是用于攻击Web应用程序的集成平台)等工具对请求进行拦截,篡改、重放的一系列渗透过程,或者是利用AWVS(Acunetix Web Vulnerability Scanner,是一款网络漏洞扫描工具)等自动化扫描工具,对用户页面进行爬虫后,进行自动化安全扫描。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(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是根据本发明实施例的自动化安全测试方法的主要流程的示意图;
图3是根据本发明实施例的自动化安全测试装置的主要模块的示意图;
图4是根据本发明实施例的自动化安全测试装置的测试用例执行模块的示意图;
图5是根据本发明实施例的自动化安全测试的方法的电子设备的硬件结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例中,改进了之前的单元测试方法,实现了一套单元测试的解决方案,适用于软件行业所有的Java单元测试。本发明实施例的开发技术是Java;选用的测试框架为SpringMVC该测试框架为基于Java实现的Web MVC框架;MVC(Model View Controller),是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。
图1是本发明实施例的自动化安全测试方法的主要步骤的示意图。
如图1所示,本发明实施例的自动化安全测试方法的方法主要包括如下步骤:
步骤S11:将所有待测单元的待测信息填写在配置文件中;所述待测信息包括方法名和期望结果。待测单元的个数可自定义,待测信息的内容可根据实际需求自行定义。在配置文件中填写的待测信息,然后由测试框架获取,避免了常规技术中需要用户通过用户页面来填写信息的问题。配置文件可以为Excel表格或者Word表格。
在步骤S11完成测试用例设计后,从步骤S12开始测试脚本编写和测试用例执行。
步骤S12:基于Controller层编写所述待测单元的脚本。待测单元程序一般分为Controller层(SpringMVC控制器层)、Service层(SpringMVC业务逻辑层)和Dao层(SpringMVC数据访问层),本发明需要对待测程序的Controller层进行单元测试。现有技术的业务场景是:用户通过操作用户页面(UI)填写好要处理的数据,然后提交给Controller等三层去进行业务处理。此处不用通过模拟页面元素来填写要处理的数据就能达到正常的业务处理的目的,实现了剥离UI的自动化安全测试。
步骤S13:初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。利用SpringMVC测试框架,在执行测试之前,需先初始化SpringMVC测试框架,然后通过运行测试框架以启动脚本并获取配置文件,配置文件中的待测信息作为脚本的输入,执行脚本程序过程中得到各方法名对应的测试方法的实际运行结果,将该实际结果和预期结果进行比对,将比对结果回写到配置文件中,方便相关人员查看。
图2是本发明实施例的自动化安全测试方法的主要流程的示意图。
如图2所示,本发明实施例中,自动化安全测试方法的具体实现流程是:将所有待测单元的待测信息全部填写在Excel表格中。基于Controller层编写所述待测单元的脚本。初始化测试框架,运行初始化后的测试框架以启动所述脚本,并获取所述Excel表格;执行配置文件中各方法名对应的测试方法以得到实际结果后,将实际结果和期望结果进行比对得到比对结果,将比对结果写到所述Excel表格中。
其中,填写在Excel表格中的待测信息包括场景名、类名、方法名、用于测试方法的入参和期望结果。类名可以包含包名,用于区分相同类名的不同包。当待测方法测试完成之后,可将实际结果和期望结果对比后的比对结果(TRUE/FALSE)回写到是否通过的单元格中。
以Java环境为例,初始化SpringMVC提供的测试框架,即把测试框架用到的Jar包集成到需要进行单元测试的项目中,可采用两种方式:一种是通过Maven私服集成,另一种是直接将Jar包复制到测试框架。Maven为项目对象模型(POM),是可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
执行配置文件中各方法名对应的测试方法以得到实际结果,具体为:读取当前场景下所述Excel表格中的待测信息,将所述待测信息依次进行组装、匹配及初始化后,将初始化后的待测信息放入字典中;执行字典中各方法名对应的测试方法以得到实际结果。此处读取的待测信息包括场景名、类名、方法名、用于测试方法的入参和期望结果。此处放入字典(即Map)的待测信息为类名和方法名,该类名和方法名可以按照Excel表格存放顺序存放,也可不按规则存放。
其中,将所述待测信息依次进行组装、匹配及初始化包括:组装测试用例:对当前场景下配置文件中的类名和方法名进行去重,并对去重后的属于同一类名的多个方法名进行组装(组装的形式多种,可采用Map形式,还可以将信息组装到数组、List或者Set集合中,Map形式最佳);对组装后的方法名进行排序分类;组装入参:对入参进行组装;匹配及初始化:对组装后的测试用例与组装后的入参进行匹配,所有需要执行的测试用例与入参匹配结束后,通过动态的反射技术将需要测试的类和入参转化成JSON(JavaScript ObjectNotation,是一种轻量级的数据交换格式)形式的Java对象后,将该JSON形式的入参反序列化为对象。此处目的是实现对待测方法和入参的初始化操作。测试用例与入参进行匹配是为了将指定的入参绑定到指定的测试用例上。
其中,执行字典中的测试方法首先需创建MockMvc来模拟真实的SpringMVC环境,执行时可按照排序后的方法名的顺序执行。为了更好的定位,也可将实际结果写入Excel表格中。实际结果进行JSON字符串序列化之后再和预期结果进行比对。
其中,Excel表格的获取是测试框架根据该Excel表格的路径信息得到的。
此外,初始化入参之后可判断Service层是否需要解耦(即判断待测试方法依赖的Service组件是否开发完成),当需要解耦时,利用mock技术将Service层进行解耦后执行测试;否则直接执行测试。mock技术本身有多种实现方式比如:easyMock、jMock、mockit、PowerMock。此处解决了现有技术中被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下无法进行测试的问题。
此外,当全部测试任务结束后,生成测试报告并发送统一的测试报告邮件至相关人员。发送测试报告邮件包括,读取属性文件中配置好的邮件发送人,将测试报告以邮件的形式发送给相关人员。
此外,还利用Jenkins等工具对步骤S12编写好的脚本进行持续集成。此处目的是使开发人员尽早地发现集成错误,提高人员效率。
通过本发明实施例的自动化安全测试方法可以看出,通过对Controller层进行白盒安全测试以及读取Excel中维护好的测试类、测试方法,已经设计好的入参来动态组织测试场景,解除了测试用例代码对UI层的依赖,使环境更加独立,易于维护和使用,缩短了项目的测试周期,使安全测试可以更早的介入到软件开发周期中;通过利用mock技术来实现对依赖模块的解耦,使得被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下人就可以进行测试,大大提升了自动化脚本的稳定性;通过将动态白盒安全测试加入进持续集成,从而使开发人员尽早地发现集成错误,提高人员效率;为自动化安全测试回归工作提供了有力保障,大大提升安全测试质量。
图3是根据本发明实施例的自动化安全测试装置的主要模块的示意图。
如图3所示,本发明实施例的自动化安全测试装置30主要包括:测试用例设计模块301、测试脚本编写模块302以及测试用例执行模块303,其中,测试用例设计模块301,用于将所有待测单元的待测信息填写在配置文件中;;测试脚本编写模块302,用于基于Controller层编写所述待测单元的脚本;测试用例执行模块303,用于初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。配置文件可以为Excel表格,填写的待测信息可以场景名、类名、方法名、用于测试方法的入参和期望结果。类名可以包含包名,用于区分相同类名的不同包。当待测方法测试完成之后,可将实际结果和期望结果对比后的比对结果(TRUE/FALSE)回写到是否通过的单元格中。
其中,执行配置文件中各方法名对应的测试方法以得到实际结果,具体为:读取当前场景下所述Excel表格中的待测信息,将所述待测信息依次进行组装、匹配及初始化后,将初始化后的待测信息放入字典中;执行字典中各方法名对应的测试方法以得到实际结果。这里读取的待测信息可以为场景名、类名、方法名、用于测试方法的入参和期望结果。放入字典中的待测信息为类名和方法名,该类名和方法名可以按照Excel表格存放顺序存放,也可不按规则存放。执行字典中的测试方法首先需创建MockMvc来模拟真实的SpringMVC环境,执行时可按照排序后的方法名的顺序执行。为了更好的定位,也可将实际结果写入Excel表格中。实际结果进行JSON字符串序列化之后再和预期结果进行比对。
图4是根据本发明实施例的自动化安全测试装置的测试用例执行模块的示意图。
如图4所示,本发明实施例的测试用例执行模块303主要包括:测试用例组装模块401,用于对当前场景下配置文件中的类名和方法名进行去重,并对去重后的属于同一类名的多个方法名进行组装(组装的形式多种,可采用Map形式,还可以将信息组装到数组、List或者Set集合中,Map形式最佳);对组装后的方法名进行排序分类;入参组装模块402,用于对入参进行组装;匹配及初始化模块403,用于对组装后的测试用例与组装后的入参进行匹配,所有需要执行的测试用例与入参匹配结束后,通过动态的反射技术将需要测试的类和入参转化成JSON形式的Java对象后,将该JSON形式入参反序列化为对象。此处目的是实现对待测方法和入参的初始化操作。测试用例与入参进行匹配是为了将指定的入参绑定到指定的测试用例上。
其中,初始化SpringMVC提供的测试框架,可采用两种方式:一种是通过Maven私服集成,另一种是直接将Jar包复制到测试框架。
另外,测试用例执行模块,还用于判断Service层是否需要解耦,当需要解耦时,利用mock技术将Service层进行解耦。此处解决了现有技术中被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下无法进行测试的问题。
此外,本发明实施例的自动化安全测试装置30还可包括:持续集成模块和测试报告生成模块(图中未示出),持续集成模块,用于对编写好的所述待测单元的脚本进行持续集成。目的是使开发人员尽早地发现集成错误,提高人员效率。测试报告生成模块,用于在所有待测单元测试完成后生成测试报告。
从以上描述可以看出,通过对Controller层进行白盒安全测试以及读取Excel中维护好的测试类、测试方法,已经设计好的入参来动态组织测试场景,解除了测试用例代码对UI层的依赖,使环境更加独立,易于维护和使用,缩短了项目的测试周期,使安全测试可以更早的介入到软件开发周期中;通过利用mock技术来实现对依赖模块的解耦,使得被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下人就可以进行测试,大大提升了自动化脚本的稳定性;通过将动态白盒安全测试加入进持续集成,从而使开发人员尽早地发现集成错误,提高人员效率;为自动化安全测试回归工作提供了有力保障,大大提升安全测试质量。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
本发明的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明所提供的自动化安全测试的方法。
本发明的非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明所提供的自动化安全测试的方法。
如图5所示,是根据本发明实施例的自动化安全测试的方法的电子设备的硬件结构示意图。如图5,该电子设备包括:一个或多个处理器52以及存储器51,图4中以一个处理器52为例。其中,存储器51即为本发明所提供的非暂态计算机可读存储介质。
自动化安全测试的方法的电子设备还可以包括:输入装置53和输出装置54。
存储器51、处理器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器51作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的自动化安全检测的方法对应的程序指令/模块(例如,附图3所示:测试用例设计模块301、测试脚本编写模块302以及测试用例执行模块303)。处理器52通过运行存储在存储器51中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的自动化安全测试的方法。
存储器51可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据自动化安全测试的装置的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器51可选包括相对于处理器52远程设置的存储器,这些远程存储器可以通过网络连接至自动化安全测试的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置53可接收输入的数字或字符信息,以及产生与自动化安全测试的装置的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器51中,当被所述一个或者多个处理器52执行时,执行上述任意方法实施例中的自动化安全测试的方法。
根据本发明的技术方案,通过对Controller层进行白盒安全测试以及读取Excel中维护好的测试类、测试方法,已经设计好的入参来动态组织测试场景,解除了测试用例代码对UI层的依赖,使环境更加独立,易于维护和使用,缩短了项目的测试周期,使安全测试可以更早的介入到软件开发周期中;通过利用mock技术来实现对依赖模块的解耦,使得被测单元依赖的模块尚未开发完成,或者依赖的模块存在BUG的情况下人就可以进行测试,大大提升了自动化脚本的稳定性;通过将动态白盒安全测试加入进持续集成,从而使开发人员尽早地发现集成错误,提高人员效率;为自动化安全测试回归工作提供了有力保障,大大提升安全测试质量。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (16)

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层编写所述待测单元的脚本;
测试用例执行模块,用于初始化并运行测试框架以启动所述脚本,获取所述配置文件,执行配置文件中各方法名对应的测试方法以得到实际结果,将实际结果和期望结果进行比对,将比对结果写到所述配置文件中。
9.根据权利要求8所述的装置,其特征在于,所述执行配置文件中各方法名对应的测试方法以得到实际结果为:
读取当前场景下所述配置文件中的待测信息,将所述待测信息依次进行组装、匹配及初始化后,将初始化后的待测信息放入字典中;
执行字典中各方法名对应的测试方法以得到实际结果。
10.根据权利要求9所述的装置,其特征在于,所述测试用例执行模块包括:
测试用例组装模块,用于对当前场景下配置文件中的类名和方法名进行去重,并对去重后的属于同一类名的多个方法名进行组装;对组装后的方法名进行排序分类;所述待测信息还包括场景名、类名和用于测试方法的入参;
入参组装模块,用于对入参进行组装;
匹配及初始化模块,用于对组装后的测试用例与组装后的入参进行匹配,所有需要执行的测试用例与入参匹配结束后,通过动态的反射技术将需要测试的类和入参转化成对象后,将该入参反序列化为对象。
11.根据权利要求8所述的装置,其特征在于,所述测试用例执行模块,还用于判断Service层是否需要解耦,当需要解耦时,利用mock技术将Service层进行解耦。
12.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
持续集成模块,用于对编写好的所述待测单元的脚本进行持续集成;
测试报告生成模块,用于在所有待测单元测试完成后生成测试报告。
13.根据权利要求8或9所述的装置,其特征在于,初始化测试框架的方式包括通过Maven私服集成和直接将Jar包复制到测试框架。
14.根据权利要求8或9所述的装置,其特征在于,所述配置文件为Excel表格。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
CN201710150227.8A 2017-03-14 2017-03-14 自动化安全测试方法、装置、电子设备和可读存储介质 Pending CN108572911A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710150227.8A CN108572911A (zh) 2017-03-14 2017-03-14 自动化安全测试方法、装置、电子设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710150227.8A CN108572911A (zh) 2017-03-14 2017-03-14 自动化安全测试方法、装置、电子设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN108572911A true CN108572911A (zh) 2018-09-25

Family

ID=63577277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710150227.8A Pending CN108572911A (zh) 2017-03-14 2017-03-14 自动化安全测试方法、装置、电子设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN108572911A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241735A (zh) * 2018-09-27 2019-01-18 四川长虹电器股份有限公司 一种基于漏洞扫描平台的持续集成方法
CN109800154A (zh) * 2018-12-15 2019-05-24 深圳壹账通智能科技有限公司 测试数据的加载方法、装置、计算机设备及存储介质
CN109813999A (zh) * 2019-01-22 2019-05-28 山东大学 一种配电网故障诊断算法自动测试平台、方法及应用
CN110096431A (zh) * 2019-03-19 2019-08-06 深圳壹账通智能科技有限公司 页面权限测试方法、装置、计算机设备及存储介质
CN110677322A (zh) * 2019-09-27 2020-01-10 杭州九略智能科技有限公司 一种基于Python语言的工控安全设备自动化测试系统及方法
CN112540920A (zh) * 2020-12-10 2021-03-23 中信银行股份有限公司 测试方法、装置、设备和存储介质
CN112559335A (zh) * 2020-12-10 2021-03-26 中信银行股份有限公司 测试方法、装置、设备和存储介质
CN114637690A (zh) * 2022-05-09 2022-06-17 北京航天驭星科技有限公司 一种api渗透测试方法、系统、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1987821A (zh) * 2006-11-14 2007-06-27 无敌科技(西安)有限公司 一种实现单元测试的方法及系统
CN102855177A (zh) * 2011-06-30 2013-01-02 阿里巴巴集团控股有限公司 一种单元测试的方法和装置
CN102855178A (zh) * 2011-06-30 2013-01-02 阿里巴巴集团控股有限公司 一种单元测试中生成Mock库的方法和装置
CN103631720A (zh) * 2013-12-20 2014-03-12 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
US20140310590A1 (en) * 2013-03-13 2014-10-16 Bby Solutions, Inc. Presentation layer software development kit for creation of dynamic webpages
CN106371868A (zh) * 2016-08-29 2017-02-01 浪潮(北京)电子信息产业有限公司 一种自动化测试方法、系统及测试机器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1987821A (zh) * 2006-11-14 2007-06-27 无敌科技(西安)有限公司 一种实现单元测试的方法及系统
CN102855177A (zh) * 2011-06-30 2013-01-02 阿里巴巴集团控股有限公司 一种单元测试的方法和装置
CN102855178A (zh) * 2011-06-30 2013-01-02 阿里巴巴集团控股有限公司 一种单元测试中生成Mock库的方法和装置
US20140310590A1 (en) * 2013-03-13 2014-10-16 Bby Solutions, Inc. Presentation layer software development kit for creation of dynamic webpages
CN103631720A (zh) * 2013-12-20 2014-03-12 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
CN106371868A (zh) * 2016-08-29 2017-02-01 浪潮(北京)电子信息产业有限公司 一种自动化测试方法、系统及测试机器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CKJAVA: "使用Maven的profiles和testResource进行Junit单元测试", 《HTTP://CKJAVA.COM/2016/07/11/MAVEN-PROFILES-TESTRESOURCE-JUNIT/》 *
PETRI KAINULAINEN: "Unit Testing of Spring MVC Controllers", 《HTTPS://WWW.PETRIKAINULAINEN.NET/PROGRAMMING/SPRING-FRAMEWORK/UNIT-TESTING-OF-SPRING-MVC-CONTROLLERS-REST-API/》 *
WHYWIN: "Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法", 《博客园》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241735A (zh) * 2018-09-27 2019-01-18 四川长虹电器股份有限公司 一种基于漏洞扫描平台的持续集成方法
CN109800154A (zh) * 2018-12-15 2019-05-24 深圳壹账通智能科技有限公司 测试数据的加载方法、装置、计算机设备及存储介质
WO2020119422A1 (zh) * 2018-12-15 2020-06-18 深圳壹账通智能科技有限公司 测试数据的加载方法、装置、计算机设备及存储介质
CN109813999A (zh) * 2019-01-22 2019-05-28 山东大学 一种配电网故障诊断算法自动测试平台、方法及应用
CN110096431A (zh) * 2019-03-19 2019-08-06 深圳壹账通智能科技有限公司 页面权限测试方法、装置、计算机设备及存储介质
WO2020186808A1 (zh) * 2019-03-19 2020-09-24 深圳壹账通智能科技有限公司 页面权限测试方法、装置、计算机设备及存储介质
CN110677322A (zh) * 2019-09-27 2020-01-10 杭州九略智能科技有限公司 一种基于Python语言的工控安全设备自动化测试系统及方法
CN112540920A (zh) * 2020-12-10 2021-03-23 中信银行股份有限公司 测试方法、装置、设备和存储介质
CN112559335A (zh) * 2020-12-10 2021-03-26 中信银行股份有限公司 测试方法、装置、设备和存储介质
CN114637690A (zh) * 2022-05-09 2022-06-17 北京航天驭星科技有限公司 一种api渗透测试方法、系统、电子设备及存储介质
CN114637690B (zh) * 2022-05-09 2023-04-11 北京航天驭星科技有限公司 一种api渗透测试方法、系统、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108572911A (zh) 自动化安全测试方法、装置、电子设备和可读存储介质
CN106095677B (zh) 基于Robot Framework实现的RESTful Webservice接口自动化测试方法
CN110427331B (zh) 基于接口测试工具自动生成性能测试脚本的方法
Kundu et al. A novel approach to generate test cases from UML activity diagrams.
CN106155906B (zh) 一种银行主机内部测试系统及方法
CN106095673A (zh) 基于web接口的自动化测试方法及系统
US10067859B2 (en) Constructing test-centric model of application
CN108446221A (zh) 系统测试方法、装置、计算机设备和存储介质
CN108491319A (zh) Web自动化测试方法及基于该方法的系统
CN106155891A (zh) 接口测试方法、接口描述数据库生成方法及装置
CN101241467A (zh) 一种面向Web应用的自动化白盒测试系统及方法
CN106227742A (zh) 基于b/s模式的动态网页生成方法、服务器和系统
CN106209503B (zh) Rpc接口测试方法及系统
US20150286555A1 (en) System and method for converting the business processes to test-centric activity diagrams
CN109426611A (zh) 一种软件测试方法和装置
CN108664388A (zh) 动态字段数据返回接口的测试系统、方法、电子设备和可读存储介质
CN106778280A (zh) 一种填充式远程漏洞PoC编写方法及漏洞检测方法
CN110471833A (zh) 一种测试数据的获取方法、电子设备及存储介质
CN104111852A (zh) 一种基于数据驱动的Web应用自动化测试系统及测试方法
CN107622017A (zh) 一种通用自动化软件测试的解析方法
CN117370203B (zh) 自动化测试方法、系统、电子设备及存储介质
Waheed et al. Data flow based test case generation algorithm for object oriented integration testing
Achkar Model based testing of web applications
CN107038110A (zh) 白盒测试的方法和系统
CN103077045A (zh) 一种构建xml脚本流程引擎的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination