一种基于jenkins和jmeter的自动化测试方法及装置
技术领域
1.本发明涉及计算机技术领域,尤其涉及一种基于jenkins和jmeter的自动化测试方法及装置。
背景技术:
2.devops平台为一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障各部门之间的沟通、协作与整合,而自动化测试指的是在预设条件下运行系统或应用程序,根据预先设定的条件,评估系统或应用程序的运行结果,以此对软件中存在的漏洞进行检测。
3.目前,通常是利用代码扫描通过特定的规则对代码进行安全漏洞的检查,代码扫描多从语法及编码规则为基础进行扫描,这样虽然能够发现代码中存在的安全漏洞,但无法对软件功能中存在的安全漏洞实现持续的、高效的检测。可见,提供一种新的测试软件功能中存在的漏洞的方法显得尤为重要。
技术实现要素:
4.本发明所要解决的技术问题在于,提供一种基于jenkins和jmeter的自动化测试方法及装置,能够对软件存在的功能漏洞进行持续集成和持续发布的功能漏洞测试,有利于提高检测软件功能中存在的安全漏洞的效率,进一步有利于提高检测软件功能中存在的安全漏洞的准确性。
5.为了解决上述技术问题,本发明第一方面公开了一种基于jenkins和jmeter的自动化测试方法,所述方法包括:
6.接收jmeter测试脚本;
7.在jenkins上创建第一项目,在所述第一项目中配置参数,得到目标项目,所述目标项目包括待测试的多个测试用例;
8.通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集,所述测试结果集中包括每个测试用例对应的测试结果;
9.将所述测试结果集发送至预先设定的第一目标路径对应的文件夹中,在所述文件夹中生成与所述测试结果集对应的第一目标文件;
10.根据所述测试结果集以及所述第一目标文件,生成目标测试报告。
11.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
12.对于所述测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件;
13.当判断出该测试结果满足预先设定的所述结果条件时,将该测试结果确定为测试成功结果;
14.当判断出该测试结果不满足预先设定的所述结果条件时,将该测试结果确定为测
试失败结果。
15.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
16.对于所述测试结果集中的每个测试结果,判断该测试结果是否存在预先设定的异常关键字;
17.当判断出该测试结果存在预先设定的所述异常关键字时,将该测试结果修改为测试异常结果。
18.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
19.将测试结果为所述测试失败结果对应的测试用例以及测试结果为所述测试异常结果对应的测试用例确定为第一测试用例,判断每个所述第一测试用例中的软件功能是否存在安全漏洞;
20.当判断出所述第一测试用例的软件功能存在所述安全漏洞时,分析所述安全漏洞,得到安全漏洞分析结果,其中,所述安全漏洞分析结果包括所述第一测试用例的软件功能存在所述安全漏洞的目标原因;
21.对于每个所述目标原因,判断该目标原因是否满足预先设定的原因条件;
22.当判断出该目标原因不满足预先设定的所述原因条件时,更新所述jmeter测试脚本,以对该目标原因对应的第一测试用例再次进行测试,得到符合预先设定的所述原因条件的目标原因。
23.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
24.根据所述安全漏洞分析结果,检测所述安全漏洞的影响程度;
25.判断所述影响程度是否大于预先设定的影响程度阈值;
26.当判断出所述影响程度大于预先设定的所述影响程度阈值时,向管理员终端输出第一警告信息,所述第一警告信息用于告知管理员所述安全漏洞的影响程度大于预先设定的所述影响程度阈值,并提醒管理员修复所述安全漏洞;
27.当判断出所述影响程度小于或等于预先设定的所述影响程度阈值时,自动在所述第一测试用例中修复所述安全漏洞。
28.作为一种可选的实施方式,在本发明第一方面中,所述在所述第一项目中配置参数,得到目标项目,包括:
29.在所述第一项目中添加字符串参数,得到目标项目,所述字符串参数包括测试用例标识以及execute shell构建项。
30.作为一种可选的实施方式,在本发明第一方面中,所述在jenkins上创建第一项目,在所述第一项目中配置参数,得到目标项目后,所述通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集之前,所述方法还包括:
31.通过所述execute shell构建项,将所述jmeter测试脚本上传至与所述测试用例标识对应的指定目录中。
32.本发明第二方面公开了一种基于jenkins和jmeter的自动化测试方法,所述装置包括:
33.接收模块,用于接收jmeter测试脚本;
34.配置模块,用于在jenkins上创建第一项目,在所述第一项目中配置参数,得到目
标项目,所述目标项目包括待测试的多个测试用例;
35.测试模块,用于通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集,所述测试结果集中包括每个测试用例对应的测试结果;
36.生成模块,用于将所述测试结果集发送至预先设定的第一目标路径对应的文件夹中,在所述文件夹中生成与所述测试结果集对应的第一目标文件;
37.所述生成模块,还用于根据所述测试结果集以及所述第一目标文件,生成目标测试报告。
38.作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
39.判断模块,用于对于所述测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件;
40.确定模块,用于当所述判断模块判断出该测试结果满足预先设定的所述结果条件时,将该测试结果确定为测试成功结果;
41.所述确定模块,还用于当所述判断模块判断出该测试结果不满足预先设定的所述结果条件时,将该测试结果确定为测试失败结果。
42.作为一种可选的实施方式,在本发明第二方面中,所述判断模块,还用于对于所述测试结果集中的每个测试结果,判断该测试结果是否存在预先设定的异常关键字;
43.所述确定模块,还用于当所述判断模块判断出该测试结果存在预先设定的所述异常关键字时,将该测试结果修改为测试异常结果。
44.作为一种可选的实施方式,在本发明第二方面中,所述确定模块,还用于将测试结果为所述测试失败结果对应的测试用例以及测试结果为所述测试异常结果对应的测试用例确定为第一测试用例;
45.所述判断模块,还用于判断每个所述第一测试用例中的软件功能是否存在安全漏洞;
46.所述装置还包括:
47.分析模块,用于当所述判断模块判断出所述第一测试用例的软件功能存在所述安全漏洞时,分析所述安全漏洞,得到安全漏洞分析结果,其中,所述安全漏洞分析结果包括所述第一测试用例的软件功能存在所述安全漏洞的目标原因;
48.所述判断模块,还用于对于每个所述目标原因,判断该目标原因是否满足预先设定的原因条件;
49.更新模块,用于当所述判断模块判断出该目标原因不满足预先设定的所述原因条件时,更新所述jmeter测试脚本,以对该目标原因对应的第一测试用例再次进行测试,得到符合预先设定的所述原因条件的目标原因。
50.作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
51.检测模块,用于根据所述安全漏洞分析结果,检测所述安全漏洞的影响程度;
52.所述判断模块,还用于判断所述影响程度是否大于预先设定的影响程度阈值;
53.输出模块,用于当所述判断模块判断出所述影响程度大于预先设定的所述影响程度阈值时,向管理员终端输出第一警告信息,所述第一警告信息用于告知管理员所述安全漏洞的影响程度大于预先设定的所述影响程度阈值,并提醒管理员修复所述安全漏洞;
54.修复模块,用于当所述判断模块判断出所述影响程度小于或等于预先设定的所述影响程度阈值时,自动在所述第一测试用例中修复所述安全漏洞。
55.作为一种可选的实施方式,在本发明第二方面中,所述配置模块在所述第一项目中配置参数,得到目标项目的方式具体为:
56.在所述第一项目中添加字符串参数,得到目标项目,所述字符串参数包括测试用例标识以及execute shell构建项。
57.作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
58.上传模块,用于在所述配置模块在jenkins上创建第一项目,在所述第一项目中配置参数,得到目标项目之后,在所述执行模块通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集之前,通过所述execute shell构建项,将所述jmeter测试脚本上传至与所述测试用例标识对应的指定目录中。
59.本发明第三方面公开了另一种基于jenkins和jmeter的自动化测试装置,所述装置包括:
60.存储有可执行程序代码的存储器;
61.与所述存储器耦合的处理器;
62.所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的基于jenkins和jmeter的自动化测试方法。
63.本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的基于jenkins和jmeter的自动化测试方法。
64.与现有技术相比,本发明实施例具有以下有益效果:
65.本发明实施例中,接收jmeter测试脚本,在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,将该测试结果集发送至预先设定的第一目标路径对应的文件夹中,在该文件夹中生成与该测试结果集对应的第一目标文件,根据测试结果集以及第一目标文件,生成目标测试报告。可见,实施本发明能够通过执行jmeter测试脚本并且通过jenkins构建任务,对每个测试用例进行测试,能够实现持续集成持续部署的自动化测试,有利于提高检测软件功能中存在的安全漏洞的效率,从而有利于提高检测软件功能中存在的安全漏洞的准确性,进而有利于提高检测软件功能中存在的安全漏洞的智能性。
附图说明
66.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
67.图1是本发明实施例公开的一种基于jenkins和jmeter的自动化测试方法的流程示意图;
68.图2是本发明实施例公开的另一种基于jenkins和jmeter的自动化测试方法的流程示意图;
69.图3是本发明实施例公开的一种基于jenkins和jmeter的自动化测试装置的结构示意图;
70.图4是本发明实施例公开的另一种基于jenkins和jmeter的自动化测试装置的结构示意图;
71.图5是本发明实施例公开的又一种基于jenkins和jmeter的自动化测试装置的结构示意图。
具体实施方式
72.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
73.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
74.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
75.本发明公开了一种基于jenkins和jmeter的自动化测试方法及装置,能够通过执行jmeter测试脚本并且通过jenkins构建任务,对每个测试用例进行测试,能够实现持续集成持续部署的自动化测试,有利于提高检测软件功能中存在的安全漏洞的效率,从而有利于提高检测软件功能中存在的安全漏洞的准确性,进而有利于提高检测软件功能中存在的安全漏洞的智能性。以下分别进行详细说明。
76.实施例一
77.请参阅图1,图1是本发明实施例公开的一种基于jenkins和jmeter的自动化测试方法的流程示意图。其中,图1所描述的一种基于jenkins和jmeter的自动化测试方法可以应用于基于jenkins和jmeter的自动化测试装置中,本发明实施例不做限定。如图1所示,该基于jenkins和jmeter的自动化测试方法可以包括以下操作:
78.101、接收jmeter测试脚本。
79.本发明实施例中,jmeter测试脚本为测试人员编写完成的用于对应用接口以及对于软件性能进行测试的脚本。可选的,jmeter测试脚本的编写可以是根据测试需求进行编写的,并且jmeter测试脚本的编写可以是以可视化的形式进行编写的。进一步可选的,jmeter测试脚本的格式可以为jmx格式。进一步的,在对jmeter测试脚本进行配置时,可以将jmeter断言作为其中一个的配置,其中,所配置的jmeter断言可以包括响应断言、xpath
断言、json断言、大小断言中的一种或多种。这样通过接收jmeter测试脚本能够提高后续对待测试的每个测试用例进行测试的全面性,从而有利于提高后续得到每个测试用例对应的测试结果的准确性。
80.本发明实施例中,jmeter测试脚本可以应用于devops平台中。devops是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。通过devops平台,能够将软件开发成员的工作都进行集成,通过自动化构建进行验证,并且通过该jmeter测试脚本能够对集成后的每个工作进行验证,能够及时的、批量地发现错误。进一步的,devops平台中集成工作的时间可以是特定的,例如每半个小时进行一次集成,也可以是随机的,也可以是根据指令触发的,在本发明实施例中不做限定。这样通过devops平台对不同部门的开发成员的工作进行集成,并通过jmeter测试脚本进行测试,有利于提高对每个测试用例进行测试的效率,进而有利于提高得到每个测试用例对应的结果的效率。
81.102、在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,目标项目包括待测试的多个测试用例。
82.本发明实施例中,jenkins为基于计算机编程语言java开发的一种持续集成的工具,是一种开源的以及能够提供友好操作界面的持续集成工具。jenkins能够用于监控持续重复的工作,旨在提供一个开放的并且容易上手使用的软件平台,使软件项目可以在该平台上持续集成。这样通过jenkins将测试用例进行持续集成,能够将所有待测试的多个测试用例进行持续集成,有利于提高后续对待测试的每个测试用例进行测试的效率,进而有利于提高后续得到每个测试用例对应的测试结果的效率。
83.在一个可选的实施例中,在第一项目中配置参数,得到目标项目,包括:
84.在第一项目中添加字符串参数,得到目标项目,字符串参数包括测试用例标识以及execute shell构建项。
85.在该可选的实施例中,可选的,测试用例标识可以为fliename。需要说明的是,filename为参数变量,其对应的是目标项目中所创建的测试用例名称,该filename的作用是可以供用户测试用例进行自定义或供用户对测试用例集进行自定义。这样通过在第一项目中添加测试用例标识,能够对不同的测试用例或不同的测试用例集进行区分,能够针对不同的测试用例或不同的测试用例集生成与其对应的测试结果,有利于测试人员直观的了解测试结果的情况,并且通过添加测试用例标识,能够对不同的测试用例或不同的测试用例集进行分别测试,有利于提高对测试用例进行测试的效率,以及有利于提高对每个测试用例进行测试的准确性。
86.在该可选的实施例中,可选的,execute shell构建项可以用于运行一个外部程序,也可以用于打开一个已注册的文件、打开一个目录、对文件进行打印等的功能。进一步可选的,execute shell构建项可以用于打开计算机中的任何文件,也可以用于打开url格式的文件。
87.可见,在该可选的实施例中,通过在第一项目中添加字符串参数,得到目标项目,其中,字符串参数包括测试用例标识以及execute shell构建项,能够让用户或测试人员对测试用例或测试用例集进行自定义,能够将测试用例或测试用例集进行分类,从而有利于提高对每个测试用例进行测试的效率,进而有利于提高对每个测试用例进行测试的准确性。
88.在另一个可选的实施例中,在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目之后,通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集之前,该方法还包括:
89.通过execute shell构建项,将jmeter测试脚本上传至与测试用例标识对应的指定目录中。
90.在该可选的实施例中,可选的,与测试用例标识对应的指定目录可以是根据测试用例标识所确定的。进一步可选的,当存在多个测试用例标识时,进而也可以存在与每个测试用例标识所对应的指定目录。这样通过根据测试用例标识,对与测试用例标识对应的指定目录进行区分,能够将jmeter测试脚本上传至与之对应的目录中,有利于提高后续通过预先设定的执行脚本调用jmeter测试工具执行jmeter测试脚本的效率,从而有利于提高后续对每个测试用例进行测试的效率,进而有利于提高得到每个测试用例对应的测试结果的效率。
91.可见,在该可选的实施例中,通过execute shell构建项将jmeter测试脚本上传至与测试用例标识对应的指定目录中,能够提高后续执行jmeter测试脚本的效率,从而能够提高对目标项目中每个测试用例进行测试的效率,进而有利于提高得到每个测试用例对应的测试结果的效率。
92.103、通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,测试结果集中包括每个测试用例对应的测试结果。
93.本发明实施例中,可选的,预先设定的执行脚本可以为shell脚本。需要说明的是,shell脚本为执行脚本,能够将各类命令预先放入到一个文件中,以方便将各类命令进行一次性执行的一个程序文件。这样通过shell脚本能够将各类命令汇总到一个文件中,有利于对各类命令进行批量处理,从而有利于提高处理各类命令的效率,进而有利于提高对目标项目中每个测试用例进行测试的效率。
94.本发明实施例中,可选的,jmeter测试工具为基于计算机编程语言java的测试工具,jmeter测试工具主要用于对软件做压力测试。jmeter测试工具能够用于测试静态资源以及动态资源,例如静态文件、java小服务程序、cgi脚本、java对象、数据库、ftp服务器中的一种或多种。进一步可选的,jmeter测试工具可以用于对服务器或网络模拟巨大的负载,在来自不同压力类别下进行测试,测试该服务器或该网络的强度,以分析其整体性能。进一步可选的,jmeter测试工具能够用于对应用程序进行功能测试或回归测试,并且jmeter测试工具能够通过创建带有断言的脚本(例如:jmeter测试脚本)对软件功能或应用程序所返回的结果进行验证,从而对软件功能或应用程序完成检测。这样通过调用jmeter测试工具,能够提高对目标项目中每个测试用例进行测试的全面性,有利于提高得到目标项目中每个测试用例对应的测试结果的准确性,并且根据jmeter测试工具体积小、功能齐全且使用方便的特点,能够有利于提高对目标项目中每个测试用例进行测试的效率。
95.104、将测试结果集发送至预先设定的第一目标路径对应的文件夹中,在文件夹中生成与测试结果集对应的第一目标文件。
96.本发明实施例中,可选的,预先设定的第一目标路径是与jmeter测试脚本,或者可以是与该测试结果集对应的路径,进一步可选的,该预先设定的第一目标路径可以是
jmeterresultfile路径。
97.本发明实施例中,可选的,第一目标文件的格式可以为xml格式。需要说明的是,xml格式的文件为可扩展标记语言,是标准通用标记语言的子集,能够用于标记电子文件,使其具有结构性的标记语言,进一步的,xml格式的文件能够用于标记数据、定义数据类型,能够允许用户对自己的标记语言进行定义的源语言。进一步可选的,xml格式的文件还能够用于执行分离数据、交换数据、共享数据、创建新的语言中的一种或多种操作。这样通过在预先设定的第一目标路径对应的文件夹中生成与测试结果集对应的xml文件,有利于传输和存储测试结果集中所包括的所有测试用例对应的测试结果,进而有利于提高生成目标测试报告的效率。
98.105、根据测试结果集以及第一目标文件,生成目标测试报告。
99.本发明实施例中,可选的,该测试结果集中包括每个测试用例对应的测试结果,该第一目标文件中存储与每个测试用例对应的测试结果。
100.本发明实施例中,进一步可选的,目标测试报告中可以包括每个目标测试用例的执行时长、每个目标测试用例的任务类型、每个目标测试用例的测试方式、每个目标测试用例的运行状态、每个目标测试用例的执行时刻、每个目标测试用例的执行顺序、每个目标测试用例的成功率、每个目标测试用例的测试用例执行结果、每个目标测试用例的测试优先级、每个目标测试用例的执行次数中的一种或多种。这样目标测试报告中所包括的内容更为全面且更为详细,有利于提高生成目标测试报告的准确性,有利于提高测试人员查看该目标测试报告的阅读观感,从而有利于测试人员能够直观的了解每个测试用例详细的测试情况。
101.可见,实施图1所描述的一种基于jenkins和jmeter的自动化测试方法能够接收jmeter测试脚本,在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,将测试结果集发送至预先设定的第一目标路径对应的文件夹中,并在该文件夹中生成与测试结果集对应的第一目标文件,根据测试结果集及第一目标文件,生成目标测试报告。可见,实施本发明能够有利于提高检测软件功能中存在的安全漏洞的效率,有利于提高检测软件功能中存在的安全漏洞的准确性。
102.实施例二
103.请参阅图2,图2是本发明实施例公开的一种基于jenkins和jmeter的自动化测试方法的流程示意图。其中,图2所描述的一种基于jenkins和jmeter的自动化测试方法可以应用于基于jenkins和jmeter的自动化测试装置中,本发明实施例不做限定。如图2所示,该基于jenkins和jmeter的自动化测试方法可以包括以下操作:
104.201、接收jmeter测试脚本。
105.202、在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,目标项目包括待测试的多个测试用例。
106.203、通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,测试结果集中包括每个测试用例对应的测试结果。
107.204、将测试结果集发送至预先设定的第一目标路径对应的文件夹中,在文件夹中
生成与测试结果集对应的第一目标文件。
108.205、根据测试结果集以及第一目标文件,生成目标测试报告。
109.本发明实施例中,针对步骤201-步骤205的其它描述,请参照实施例一中针对步骤101-步骤105的详细描述,本发明实施例不再赘述。
110.206、对于测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件。
111.本发明实施例中,当步骤206判断出该测试结果满足预先设定的结果条件时,触发执行步骤207;当步骤206判断出该测试结果不满足预先设定的结果条件时,触发执行步骤208。
112.本发明实施例中,可选的,判断该测试结果是否满足预先设定的结果条件,可以包括:
113.通过jmeter中所配置的jmeter的响应断言,判断该测试结果是否符合预先设定的结果条件。
114.本发明实施例中,可选的,jmeter的响应断言可以用于检查从服务器获取的响应内容是否符合预期。可选的,判断该测试结果是否符合预先设定的结果条件可以是判断该测试结果是否与预先设定的响应结果相一致。这样通过对该测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件,能够有利于提高确定每个测试用例对应的测试结果的准确性。
115.207、将该测试结果确定为测试成功结果。
116.208、将该测试结果确定为测试失败结果。
117.本发明实施例中,当步骤206判断出该测试结果满足预先设定的结果条件时,将该测试结果确定为测试成功结果;当步骤206判断出该测试结果不满足预先设定的结果条件时,将该测试结果确定为测试失败结果。这样根据判断该测试结果是否满足预先设定的结果条件,若是,则将该测试结果确定为测试成功结果,若否,则将该测试结果确定为测试失败结果,能够有利于提高确定每个测试用例对应的测试结果的准确性,进而有利于提高后续确定测试异常结果的准确性。
118.可见,实施图2所描述的一种基于jenkins和jmeter的自动化测试方法能够接收jmeter测试脚本,在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,将测试结果集发送至预先设定的第一目标路径对应的文件夹中,并在该文件夹中生成与测试结果集对应的第一目标文件,根据测试结果集及第一目标文件,生成目标测试报告,并对于测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件,若是,则将测试结果确定为测试成功结果;若否,则将测试结果确定为测试失败结果。可见,实施本发明能够提高检测软件功能中存在的安全漏洞的效率,从而有利于提高检测软件功能中存在的安全漏洞的准确性,进而有利于提高检测软件功能中存在的安全漏洞的智能性。
119.在一个可选的实施例中,该方法还包括:
120.对于测试结果集中的每个测试结果,判断该测试结果是否存在预先设定的异常关键字;
121.当判断出该测试结果存在预先设定的异常关键字时,将该测试结果修改为测试异常结果。
122.在该可选的实施例中,预先设定的异常关键字可以有一个或多个,本发明实施例中不作限定。可选的,异常关键字可以是“测试方式异常”“调用方式异常”“测试时长过长”等的异常关键字。举例来说,当该测试用例进行测试的测试时长过长时,将该测试结果修改为测试异常结果,并将该测试异常结果对应的异常原因标记为“测试时长过长”。进一步的,能够将该测试异常结果对应的异常原因输入至目标测试报告中。这样通过判断测试结果中是否存在预先设定的异常关键字,进而分析该测试结果中存在的异常关键字,能够使测试人员了解该测试结果为测试异常结果的原因。
123.可见,在该可选的实施例中,通过判断测试结果中是否存在预先设定的异常关键字,若存在,则将该测试结果修改为测试异常结果,并根据异常关键字确定该测试结果异常的原因,有利于测试人员后续对该测试异常结果做出与该测试异常结果对应的异常原因相匹配的解决操作,进而有利于提高目标测试用例对应的软件功能的使用安全性。
124.在另一个可选的实施例中,该方法还包括:
125.将测试结果为测试失败结果对应的测试用例以及测试结果为测试异常结果对应的测试用例确定为第一测试用例,判断每个第一测试用例中的软件功能是否存在安全漏洞;
126.当判断出第一测试用例的软件功能存在安全漏洞时,分析安全漏洞,得到安全漏洞分析结果,其中,安全漏洞分析结果包括第一测试用例的软件功能存在安全漏洞的目标原因;
127.对于每个目标原因,判断该目标原因是否满足预先设定的原因条件;
128.当判断出该目标原因不满足预先设定的原因条件时,更新jmeter测试脚本,以对该目标原因对应的第一测试用例再次进行测试,得到符合预先设定的原因条件的目标原因。
129.在该可选的实施例中,可选的,第一测试用例可以包括一个或多个,在本发明实施例中不做限定。进一步可选的,对于第一测试用例中的每个测试用例,判断该第一测试用例中的软件功能是否存在安全漏洞,若存在,则分析该安全漏洞,若不存在,则可以结束本次操作。
130.在该可选的实施例中,可选的,预先设定的原因条件可以是判断该目标原因是否具体,若判断出该目标原因具体,则可结束本次流程,若判断出该目标原因不具体,则触发执行更新jmeter测试脚本,以对该目标原因对应的第一测试用例再次进行测试,得到符合预先设定的原因条件的目标原因的操作。举例来说,当该目标原因为数据缺失时,由于该目标原因未检测出缺失的数据具体为何种数据或缺失的数据对应的数量,所以将该目标原因判断为不满足预先设定的原因条件,对jmeter测试脚本进行更新,根据更新后的jmeter测试脚本对第一测试用例再次进行测试,再次测试后得到的目标原因为缺失通讯数据,则符合预先设定的原因条件,进而可以结束本次流程。这样通过判断每个目标原因是否满足预先设定的原因条件,能够找到存在该安全漏洞的具体原因,有利于后续分析该安全漏洞的影响程度的效率,有利于后续分析该安全漏洞的准确性,从而有利于管理员能够直接了解存在该安全漏洞的原因并执行与该目标原因相匹配的解决操作,进而有利于提高修复该安
全漏洞的效率以及准确性,有利于提高软件功能的安全性和防护性。
131.可见,在该可选的实施例中,通过判断每个第一测试用例中是否存在安全漏洞,若存在,则分析该安全漏洞,得到安全漏洞分析结果以及第一测试用例的软件功能存在该安全漏洞的目标原因,进一步判断该目标原因是否符合预先设定的原因条件,若不符合,则更新jmeter测试脚本对第一测试用例再次进行测试,能够发现存在该安全漏洞的具体原因,有利于后续分析该安全漏洞的影响程度的效率,有利于后续分析该安全漏洞的准确性,从而有利于管理员能够直接了解第一测试用例中存在该安全漏洞的原因并执行与该目标原因相匹配的解决操作,进而有利于提高修复该安全漏洞的效率以及准确性,有利于提高软件功能的安全性和防护性。
132.在又一个可选的实施例中,该方法还包括:
133.根据所述安全漏洞分析结果,检测所述安全漏洞的影响程度;
134.判断所述影响程度是否大于预先设定的影响程度阈值;
135.当判断出所述影响程度大于预先设定的所述影响程度阈值时,向管理员终端输出第一警告信息,所述第一警告信息用于告知管理员所述安全漏洞的影响程度大于预先设定的所述影响程度阈值,并提醒管理员修复所述安全漏洞;
136.当判断出所述影响程度小于或等于预先设定的所述影响程度阈值时,自动在所述第一测试用例中修复所述安全漏洞。
137.在该可选的实施例中,可选的,影响程度用于表示该安全漏洞对于该测试用例对应的软件功能的影响程度。进一步可选的,影响程度可以用于表示来自各个方面的影响,例如通讯方面、功能方面、界面方面、操作方面等方面的影响。
138.在该可选的实施例中,第一警告信息用于告知管理员该安全漏洞的影响程度较大,并且提醒管理员需对该安全漏洞进行及时修复,举例来说,第一警告信息可以是“已检测出该安全漏洞对软件性能的影响程度较大,已严重影响用户使用该软件,请管理人员尽快将该安全漏洞进行修复”。进一步可选的,第一警告信息中可以包括该测试用例的软件功能中存在该安全漏洞的原因,这样通过将该安全漏洞的影响程度以及存在该安全漏洞的目标原因发送至管理员终端,能够及时提醒管理员对该安全漏洞进行修复,有利于提高修复该安全漏洞的效率,以及通过将存在该安全漏洞的目标原因发送至管理员终端,有利于管理员及时了解漏洞存在的原因并做出与该目标原因相匹配的解决操作,有利于提高修复该安全漏洞的效率,进而有利于提高该软件功能的安全性及防护性。
139.在该可选的实施例中,当判断出该安全漏洞的影响程度小于预先设定的影响程度阈值时,能够对该安全漏洞进行自动修复。进一步可选的,在完成对该安全漏洞进行修复的漏洞后,得到修复结果,判断该修复结果是否满足预先设定的修复条件,当判断出该修复结果满足预先设定的修复条件时,确定该安全漏洞已修复完成;当判断出该修复结果不满足预先设定的修复条件时,则向管理员终端发送第二提醒信息,其中,第二提醒信息用于提醒管理员本次对该安全漏洞的自动修复失败,请管理员及时对该安全漏洞及时进行检查与修复。这样通过对影响程度较小的安全漏洞进行自动修复,在自动修复后判断是否满足预先设定的修复条件,若符合,则修复完成,若不符合,则提醒管理员对该漏洞进行人工修复,有利于提高对该安全漏洞进行修复的效率,有利于提高对该安全漏洞进行修复的准确性,从而有利于提高对该安全漏洞进行修复的智能性,进而有利于提高该软件功能的安全性及防
护性。
140.可见,在该可选的实施例中,通过根据所述安全漏洞分析结果,检测所述安全漏洞的影响程度,并判断该安全漏洞的影响程度是否大于预先设定的影响程度阈值,若大于,则向管理员终端发送提醒信息,若不大于,则对该安全漏洞进行自动修复,有利于提高对该安全漏洞进行修复的智能性,有利于提高对该安全漏洞进行修复的效率,从而有利于提高对该安全漏洞进行修复的准确性,进而有利于提高该软件功能的安全性及防护性。
141.实施例三
142.请参阅图3,图3是本发明实施例公开的一种基于jenkins和jmeter的自动化测试装置的结构示意图。如图3所示,该一种基于jenkins和jmeter的自动化测试装置包括:
143.接收模块301,用于接收jmeter测试脚本。
144.配置模块302,用于在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,目标项目包括待测试的多个测试用例。
145.测试模块303,用于通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,测试结果集中包括每个测试用例对应的测试结果。
146.生成模块304,用于将测试结果集发送至预先设定的第一目标路径对应的文件夹中,在文件夹中生成与测试结果集对应的第一目标文件。
147.生成模块304,还用于根据测试结果集以及第一目标文件,生成目标测试报告。
148.可见,实施图3所描述的基于jenkins和jmeter的自动化测试装置能够接收jmeter测试脚本,在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,将测试结果集发送至预先设定的第一目标路径对应的文件夹中,并在该文件夹中生成与测试结果集对应的第一目标文件,根据测试结果集及第一目标文件,生成目标测试报告。可见,实施本发明能够提高检测软件功能中存在的安全漏洞的效率,从而有利于提高检测软件功能中存在的安全漏洞的准确性。
149.在一个可选的实施例中,如图4所示,该种基于jenkins和jmeter的自动化测试装置还包括:
150.判断模块305,用于对于测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件。
151.确定模块306,用于当判断模块305判断出该测试结果满足预先设定的结果条件时,将该测试结果确定为测试成功结果。
152.确定模块306,还用于当判断模块305判断出该测试结果不满足预先设定的结果条件时,将该测试结果确定为测试失败结果。
153.可见,实施图4所描述的基于jenkins和jmeter的自动化测试装置对于测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件,若是,则将测试结果确定为测试成功结果;若否,则将测试结果确定为测试失败结果。可见,实施本发明能够提高检测软件功能中存在的安全漏洞的效率,有利于提高检测软件功能中存在的安全漏洞的智能性,从而有利于提高检测软件功能中存在的安全漏洞的准确性。
154.在另一个可选的实施例中,如图4所示,判断模块305,还用于对于测试结果集中的
每个测试结果,判断该测试结果是否存在预先设定的异常关键字。
155.确定模块306,还用于当判断模块305判断出该测试结果存在预先设定的异常关键字时,将该测试结果修改为测试异常结果。
156.可见,实施图4所描述的基于jenkins和jmeter的自动化测试装置能够通过判断测试结果中是否存在预先设定的异常关键字,若存在,则将该测试结果修改为测试异常结果,有利于测试人员后续对该测试异常结果做出与该测试异常结果对应的异常原因相匹配的解决操作,从而有利于提高检测软件功能中存在的安全漏洞的准确性,进而有利于提高目标测试用例对应的软件功能的安全性。
157.在又一个可选的实施例中,如图4所示,确定模块306,还用于将测试结果为测试失败结果对应的测试用例以及测试结果为测试异常结果对应的测试用例确定为第一测试用例。
158.判断模块305,还用于判断每个第一测试用例中的软件功能是否存在安全漏洞。
159.该装置还包括:
160.分析模块307,用于当判断模块305判断出第一测试用例的软件功能存在安全漏洞时,分析安全漏洞,得到安全漏洞分析结果,其中,安全漏洞分析结果包括第一测试用例的软件功能存在安全漏洞的目标原因。
161.判断模块305,还用于对于每个目标原因,判断该目标原因是否满足预先设定的原因条件。
162.更新模块308,当判断模块305判断出该目标原因不满足预先设定的原因条件时,更新jmeter测试脚本,以对该目标原因对应的第一测试用例再次进行测试,得到符合预先设定的原因条件的目标原因。
163.可见,实施图4所描述的基于jenkins和jmeter的自动化测试装置能够发现存在该安全漏洞的具体原因,有利于后续分析该安全漏洞的影响程度的效率,有利于后续分析该安全漏洞的准确性,从而有利于管理员能够直接了解存在该安全漏洞的原因并执行与该目标原因相匹配的解决操作,进而有利于提高修复该安全漏洞的效率以及准确性,有利于提高软件功能的安全性和防护性。
164.在又一个可选的实施例中,如图4所示,该装置还包括:
165.检测模块309,用于根据安全漏洞分析结果,检测安全漏洞的影响程度。
166.判断模块305,还用于判断影响程度是否大于预先设定的影响程度阈值。
167.输出模块310,当判断模块305判断出影响程度大于预先设定的影响程度阈值时,向管理员终端输出第一警告信息,第一警告信息用于告知管理员安全漏洞的影响程度大于预先设定的影响程度阈值,并提醒管理员修复安全漏洞。
168.修复模块311,当判断模块305判断出影响程度小于或等于预先设定的影响程度阈值时,自动在第一测试用例中修复安全漏洞。
169.可见,实施图4所描述的基于jenkins和jmeter的自动化测试装置能够通过根据所述安全漏洞分析结果,检测所述安全漏洞的影响程度,并判断该安全漏洞的影响程度是否大于预先设定的影响程度阈值,若大于,则向管理员终端发送提醒信息,若不大于,则对该安全漏洞进行自动修复,有利于提高对该安全漏洞进行修复的效率,有利于提高对该安全漏洞进行修复的智能性,从而有利于提高对该安全漏洞进行修复的准确性,进而有利于提
高该软件功能的安全性及防护性。
170.在又一个可选的实施例中,如图4所示,配置模块302在第一项目中配置参数,得到目标项目的方式具体为:
171.在第一项目中添加字符串参数,得到目标项目,字符串参数包括测试用例标识以及execute shell构建项。
172.可见,实施图4所描述的基于jenkins和jmeter的自动化测试装置能够通过在第一项目中添加字符串参数,得到目标项目,其中,字符串参数包括测试用例标识以及execute shell构建项,能够让用户或测试人员对测试用例或测试用例集进行自定义,能够将测试用例或测试用例集进行分类,从而有利于提高对每个测试用例进行测试的效率,进而有利于提高得到每个测试用例对应的测试结果的效率。
173.在又一个可选的实施例中,如图4所示,该装置还包括:
174.上传模块312,用于在配置模块302在jenkins上创建第一项目,在第一项目中配置参数,得到目标项目之后,在测试模块303通过预先设定的执行脚本调用jmeter测试工具,执行jmeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集之前,通过execute shell构建项,将jmeter测试脚本上传至与测试用例标识对应的指定目录中。
175.可见,实施图4所描述的基于jenkins和jmeter的自动化测试装置能够通过execute shell构建项将jmeter测试脚本上传至与测试用例标识对应的指定目录中,能够提高后续执行jmeter测试脚本的效率,从而能够提高对目标项目中每个测试用例进行测试的效率。
176.实施例四
177.请参阅图5,图5是本发明实施例公开的又一种基于jenkins和jmeter的自动化测试装置的结构示意图。如图5所示,该基于jenkins和jmeter的自动化测试装置可以包括:
178.存储有可执行程序代码的存储器401;
179.与存储器401耦合的处理器402;
180.处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一或本发明实施例二所描述的一种基于jenkins和jmeter的自动化测试方法中的步骤。
181.实施例五
182.本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一或本发明实施例二所描述的基于jenkins和jmeter的自动化测试方法中的步骤。
183.实施例六
184.本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二中所描述的一种基于jenkins和jmeter的自动化测试方法中的步骤。
185.以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
186.通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
187.最后应说明的是:本发明实施例公开的一种基于jenkins和jmeter的自动化测试方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
技术特征:
1.一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述方法包括:接收jmeter测试脚本;在jenkins上创建第一项目,在所述第一项目中配置参数,得到目标项目,所述目标项目包括待测试的多个测试用例;通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集,所述测试结果集中包括每个测试用例对应的测试结果;将所述测试结果集发送至预先设定的第一目标路径对应的文件夹中,在所述文件夹中生成与所述测试结果集对应的第一目标文件;根据所述测试结果集以及所述第一目标文件,生成目标测试报告。2.根据权利要求1所述的一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述方法还包括:对于所述测试结果集中的每个测试结果,判断该测试结果是否满足预先设定的结果条件;当判断出该测试结果满足预先设定的所述结果条件时,将该测试结果确定为测试成功结果;当判断出该测试结果不满足预先设定的所述结果条件时,将该测试结果确定为测试失败结果。3.根据权利要求2所述的一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述方法还包括:对于所述测试结果集中的每个测试结果,判断该测试结果是否存在预先设定的异常关键字;当判断出该测试结果存在预先设定的所述异常关键字时,将该测试结果修改为测试异常结果。4.根据权利要求3所述的一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述方法还包括:将测试结果为所述测试失败结果对应的测试用例以及测试结果为所述测试异常结果对应的测试用例确定为第一测试用例,判断每个所述第一测试用例中的软件功能是否存在安全漏洞;当判断出所述第一测试用例的软件功能存在所述安全漏洞时,分析所述安全漏洞,得到安全漏洞分析结果,其中,所述安全漏洞分析结果包括所述第一测试用例的软件功能存在所述安全漏洞的目标原因;对于每个所述目标原因,判断该目标原因是否满足预先设定的原因条件;当判断出该目标原因不满足预先设定的所述原因条件时,更新所述jmeter测试脚本,以对该目标原因对应的第一测试用例再次进行测试,得到符合预先设定的所述原因条件的目标原因。5.根据权利要求4所述的一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述方法还包括:根据所述安全漏洞分析结果,检测所述安全漏洞的影响程度;
判断所述影响程度是否大于预先设定的影响程度阈值;当判断出所述影响程度大于预先设定的所述影响程度阈值时,向管理员终端输出第一警告信息,所述第一警告信息用于告知管理员所述安全漏洞的影响程度大于预先设定的所述影响程度阈值,并提醒管理员修复所述安全漏洞;当判断出所述影响程度小于或等于预先设定的所述影响程度阈值时,自动在所述第一测试用例中修复所述安全漏洞。6.根据权利要求5所述的一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述在所述第一项目中配置参数,得到目标项目,包括:在所述第一项目中添加字符串参数,得到目标项目,所述字符串参数包括测试用例标识以及execute shell构建项。7.根据权利要求6所述的一种基于jenkins和jmeter的自动化测试方法,其特征在于,所述在jenkins上创建第一项目,在所述第一项目中配置参数,得到目标项目后,所述通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集之前,所述方法还包括:通过所述execute shell构建项,将所述jmeter测试脚本上传至与所述测试用例标识对应的指定目录中。8.一种基于jenkins和jmeter的自动化测试装置,其特征在于,所述装置包括:接收模块,用于接收jmeter测试脚本;配置模块,用于在jenkins上创建第一项目,在所述第一项目中配置参数,得到目标项目,所述目标项目包括待测试的多个测试用例;测试模块,用于通过预先设定的执行脚本调用jmeter测试工具,执行所述jmeter测试脚本对所述目标项目中每个测试用例进行测试,得到测试结果集,所述测试结果集中包括每个测试用例对应的测试结果;生成模块,用于将所述测试结果集发送至预先设定的第一目标路径对应的文件夹中,在所述文件夹中生成与所述测试结果集对应的第一目标文件;所述生成模块,还用于根据所述测试结果集以及所述第一目标文件,生成目标测试报告。9.一种基于jenkins和jmeter的自动化测试装置,其特征在于,所述装置包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的基于jenkins和jmeter的自动化测试方法。10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的基于jenkins和jmeter的自动化测试方法。
技术总结
本发明公开了一种基于Jenkins和JMeter的自动化测试方法及装置,该方法包括:接收JMeter测试脚本,在Jenkins上创建第一项目,在第一项目中配置参数,得到目标项目,通过预先设定的执行脚本调用JMeter测试工具,执行JMeter测试脚本对目标项目中每个测试用例进行测试,得到测试结果集,将测试结果集发送至预先设定的第一目标路径对应的文件夹中,并在该文件夹中生成与测试结果集对应的第一目标文件,根据测试结果集及第一目标文件,生成目标测试报告。可见,实施本发明能够提高检测软件功能中存在的安全漏洞的效率,从而有利于提高检测软件功能中存在的安全漏洞的准确性。高检测软件功能中存在的安全漏洞的准确性。高检测软件功能中存在的安全漏洞的准确性。
技术研发人员:赵铭 林圳杰 陈骋逵
受保护的技术使用者:南方电网深圳数字电网研究院有限公司
技术研发日:2021.12.06
技术公布日:2022/3/8