一种测试方法、装置、电子设备及存储介质与流程

未命名 09-08 阅读:85 评论:0

一种测试方法、装置、电子设备及存储介质
【技术领域】
1.本技术实施例涉及计算机技术领域,尤其涉及一种测试方法、装置、电子设备及存储介质。


背景技术:

2.目前的终端性能测试方法中,为测试终端运行某项应用的总体性能指标,发现其性能瓶颈,往往需要执行上万种性能测试用例——即执行某一项功能或操作的性能测试时所需的预编译代码指令,且几乎每种性能测试用例都需要测试近百次。
3.而在执行某项性能测试用例之前,还需要在测试系统中填入性能指标的对照值(例如从历史性能测试中或竞品机的性能测试中得到的性能指标数据),以判断终端的测试值是否优于对照值。而对照值的数据往往需要依赖人工查阅并填写来获得,在执行大批量的终端性能测试任务时,这种方式既浪费人力又降低测试效率。


技术实现要素:

4.本技术实施例提供了一种测试方法、装置、电子设备及存储介质,能够在终端性能测试时自动对存储的性能对照值进行查找、调取,从而减少性能测试过程中的人工操作量,节省人力资源并提升测试效率。
5.第一方面,本技术实施例提供了一种测试方法,所述方法包括:
6.获得测试用例调用指令,所述测试用例调用指令中携带有目标测试用例标识码;
7.根据预设的测试用例标识码与测试用例之间的映射关系,确定所述目标测试用例标识码对应的目标测试用例;
8.根据预设的测试用例标识码与性能对照值之间的映射关系,查找出所述目标测试用例标识码对应的目标性能对照值;
9.响应于针对测试执行选项的选中命令,执行所述目标测试用例,获得被测终端的目标性能测试值;
10.根据所述目标性能测试值与所述目标性能对照值,获得所述被测终端的性能评估结果。
11.本技术实施例中,预先存储测试用例标识码与测试用例的对应关系,以及测试用例标识码与性能对照值的对应关系,在获得测试用例调用指令时,自动通过指令中的目标测试用例标识码查找到对应的目标性能对照值并调用,然后与目标测试用例标识码对应的目标测试用例测试时所产生的目标性能测试值共同计算出性能评估结果,从而减少开发人员手动填入性能对照值的工作量,降低性能测试的人工操作繁琐度,提升测试效率。
12.可选的,所述根据所述目标性能测试值与所述目标性能对照值,获得所述被测终端的性能评估结果包括:
13.将所述目标性能测试值按照第一行名、列名填入预设的空白数据表,生成第一数据表,所述第一行名为所述被测终端的机型,所述列名为测试次数或测试时间;
14.将所述目标性能对照值按照第二行名、所述列名填入预设的空白数据表,生成第二数据表,所述第二行名为对照终端的机型;
15.接收数据处理指令,所述数据处理指令携带函数标识码与函数组合规则;
16.根据所述函数标识码从函数库中调用至少一个预封装函数,所述函数库中存有多个预封装函数,所述多个预封装函数至少用于实现平均值运算、差值运算、中位数运算和方差运算;
17.基于所述函数组合规则,将所述至少一个预封装函数组合为数据表处理函数;
18.使用所述数据表处理函数按照所述第一行名、所述第二行名与所述列名的预设排列顺序,依次对所述第一数据表与所述第二数据表中的数据进行运算,生成所述性能评估结果。
19.本技术实施例中,通过将目标性能对照值、目标性能测试值按照数据表的形式进行存储,并对运算性能评估结果的函数进行提前封装,并在需要使用时根据输入的数据处理指令自动调用封装函数并组合为数据表处理函数,从而根据测试人员的需要自动实现各种数据计算功能,减少为了手动计算性能评估结果而产生的人工工作量。
20.可选的,所述测试用例标识码与性能对照值的映射关系以测试用例标识码的字符构成为基准存入二叉搜索树当中,所述二叉搜索树中的每个节点都存有一个测试用例标识码及对应的性能对照值,所述根据预设的测试用例标识码与性能对照值之间的映射关系,查找出所述目标测试用例标识码对应的目标性能对照值包括:
21.计算所述目标测试用例标识码与所述二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度;
22.响应于所述第一相似度大于等于设定阈值,从所述根节点中调取所述第一测试用例标识码对应的第一性能对照值;
23.将所述第一性能对照值作为所述目标性能对照值。
24.本技术实施例中,通过二叉搜索树的方式存储各类性能测试用例的标识码以及这些性能测试用例需要使用的性能对照值,并计算目标测试用例标识码与二叉搜索树中节点所存储的测试用例标识码的相似度来查找出目标性能对照值,从而在实现目标性能对照值的自动匹配、调用的同时,增强性能对照值存储方式的有序性,方便数据管理与数据修改。
25.可选的,所述计算目标测试用例标识码与所述二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度之后,所述方法还包括:
26.响应于所述第一相似度小于所述设定阈值,计算所述目标测试用例标识码与所述根节点的左子节点中存储的第二测试用例标识码的第二相似度;
27.响应于所述第二相似度小于所述设定阈值且大于等于所述第一相似度,采用递归的方式对所述左子节点的子树中各节点与所述目标测试用例标识码分别进行相似度计算,直至从所述左子节点的子树中确定出相似度大于等于所述设定阈值的第一子树节点;
28.从所述第一子树节点存储的数据中调取第二性能对照值,并将所述第二性能对照值作为所述目标性能对照值。
29.本技术实施例中,基于二叉搜索树使用字符构成为基准进行建立的特点,只需对左子节点、右子节点中的任一个节点先执行相似度计算,即可判断接下来的搜索走向,省略对根节点其中一个分支的检索动作。因此,默认对根节点的左子节点优先进行相似度计算,
并比较第二相似度与第一相似度之间的大小关系,进而在第二相似度大于第一相似度时仅对左子节点的子树继续执行搜索与相似度计算,实现相比遍历搜索更短的搜索步数,更快速地查找到目标性能对照值所在的节点,在保证搜索精确度的同时缩短目标性能对照值的搜索时间。
30.可选的,所述计算所述目标测试用例标识码与所述根节点的左子节点中存储的第二测试用例标识码的第二相似度之后,所述方法还包括:
31.响应于所述第二相似度小于所述设定阈值且小于所述第一相似度,计算所述目标测试用例标识码与所述根节点的右子节点中存储的第三测试用例标识码的第三相似度;
32.响应于所述第三相似度小于所述设定阈值,采用递归的方式对所述右子节点的子树中各节点与所述目标测试用例标识码分别进行相似度计算,直至从所述右子节点的子树中确定出相似度大于等于所述设定阈值的第二子树节点;
33.从所述第二子树节点存储的数据中调取第三性能对照值,并将所述第三性能对照值作为所述目标性能对照值。
34.本技术实施例中,当根节点的左子节点中存储的第二测试用例标识码与目标测试用例标识码的相似度小于设定阈值且小于根节点时,停止对二叉搜索树的左子节点及左子节点的子树部分的搜索,折返至上个分支并重新计算右子节点及其子树中各测试用例标识码与目标测试用例标识码的相似度,从而在条件不满足的情况下自动跳过左子节点之后的搜索,实现略过部分无用节点以更快找到目标性能对照值的搜索机制。
35.可选的,所述计算所述目标测试用例标识码与所述二叉搜索树的根节点中存储的第一用例标识码的第一相似度包括:
36.使用预设的模式串从所述目标测试用例标识码中匹配出第一关键字段,以及从所述第一测试用例标识码中匹配出第二关键字段,所述模式串为设定有关键字段格式的空白变量;
37.将所述第一关键字段赋值给第一字符串,以及将所述第二关键字段赋值给第二字符串;
38.计算所述第一字符串与所述第二字符串中同一位置上的字符之间的相似度,得到多组字符相似度;
39.根据所述多组字符相似度计算出所述第一字符串与所述第二字符串的所述第一相似度。
40.本技术实施例中,通过模式串排除了测试用例标识码中无关信息,仅将关键字段赋值给字符串进行比对,然后使用关键字段中每两个对应字符之间的相似度归纳出整体字段的相似度,实现相比整体计算更精细的计算颗粒度,确保得到的相似度数据具备足够的准确性。
41.可选的,所述响应于所述第二相似度小于所述设定阈值且大于等于所述第一相似度,采用递归的方式对所述左子节点的子树中各节点与所述目标测试用例标识码分别进行相似度计算,直至从所述左子节点的子树中确定出相似度大于等于所述设定阈值的第一子树节点之后,所述方法还包括:
42.响应于所述二叉搜索树的末尾节点中存储的第四测试用例标识码与所述目标测试用例标识码的第四相似度小于所述设定阈值,输出空值,所述空值用于表征所述目标测
试用例标识码无法检索到匹配的目标性能对照值。
43.本技术实施例中,当二叉搜索树的某个末尾节点仍不满足相似度大于等于设定阈值的条件时,输出空值而不是继续搜索,以告知测试人员未查询到与目标测试用例标识码对应的目标性能对照值,从而减少无效的重复搜索动作,同时也为测试人员调整搜索策略或二叉搜索树结构提供了参考信息。
44.可选的,所述响应于所述二叉搜索树的末尾节点中存储的第四测试用例标识码与所述目标测试用例标识码的第四相似度小于所述设定阈值,输出空值之后,所述方法还包括:
45.接收录入指令,所述录入指令携带有与所述目标测试用例标识码对应的新建性能对照值;
46.建立所述新建性能对照值与所述目标测试用例标识码之间的映射关系;
47.将所述新建性能对照值与所述目标测试用例标识码之间的映射关系以所述目标测试用例标识码的字符构成为基准存储至所述二叉搜索树的新节点中。
48.本技术实施例中,通过在检索到目标性能对照值为空值时向测试人员提供新建性能对照值的录入途径,并将新建性能对照值与目标测试用例标识码绑定,从而便利地为二叉搜索树添加新的节点,减少人工操作量。
49.可选的,所述使用所述数据表处理函数按照所述第一行名、所述第二行名与所述列名的预设排列顺序,依次对所述第一数据表与所述第二数据表中的数据进行运算,生成所述性能评估结果之后,所述方法还包括:
50.接收渲染指令,所述渲染指令包括目标表格模板标识码和目标统计图类型标识码;
51.根据表格模板标识码与表格模板的映射关系,查找出所述目标表格模板标识码对应的目标表格模板;
52.使用所述第一数据表、所述第二数据表与所述性能评估结果的数据导入所述目标表格模板,生成性能评估表格;
53.根据统计图类型标识码与统计图底图的映射关系,查找出所述目标统计图类型标识码对应的目标统计图底图;
54.根据所述第一数据表、所述第二数据表与所述性能评估结果的数据以及所述目标统计图底图,生成性能评估统计图,所述性能评估统计图包括表征性能对比状况的柱状统计图、表征测试的测试次数累积量的饼状统计图以及表征性能波动状况的折线统计图中的至少一种;
55.输出所述性能评估表格与所述性能评估统计图。
56.本技术实施例中,通过渲染指令中的目标表格模板标识码和目标统计图类型标识码找到对应的表格模板与统计图底图,并导入测试所得到的数据以生成性能评估表格与性能评估统计图,从而直观地向用户呈现当前被测终端的性能相比目标性能对照值的性能表现优劣,方便测试人员进行后期分析。
57.第二方面,本技术实施例提供了一种测试装置,所述装置包括:
58.指令获取单元,用于获得测试用例调用指令,所述测试用例调用指令中携带有目标测试用例标识码;
59.确定单元,用于根据预设的测试用例标识码与测试用例之间的映射关系,确定所述目标测试用例标识码对应的目标测试用例;
60.查找单元,用于根据预设的测试用例标识码与性能对照值之间的映射关系,查找出所述目标测试用例标识码对应的目标性能对照值;
61.测试单元,用于响应于针对测试执行选项的选中命令,执行所述目标测试用例,获得被测终端的目标性能测试值;
62.性能评估单元,用于根据所述目标性能测试值与所述目标性能对照值,获得所述被测终端的性能评估结果。
63.可选的,所述性能评估单元具体用于:
64.将所述目标性能测试值按照第一行名、列名填入预设的空白数据表,生成第一数据表,所述第一行名为所述被测终端的机型,所述列名为测试次数或测试时间;
65.将所述目标性能对照值按照第二行名、所述列名填入预设的空白数据表,生成第二数据表,所述第二行名为对照终端的机型;
66.接收数据处理指令,所述数据处理指令携带函数标识码与函数组合规则;
67.根据所述函数标识码从函数库中调用至少一个预封装函数,所述函数库中存有多个预封装函数,所述多个预封装函数至少用于实现平均值运算、差值运算、中位数运算和方差运算;
68.基于所述函数组合规则,将所述至少一个预封装函数组合为数据表处理函数;
69.使用所述数据表处理函数按照所述第一行名、所述第二行名与所述列名的预设排列顺序,依次对所述第一数据表与所述第二数据表中的数据进行运算,生成所述性能评估结果。
70.可选的,所述测试用例标识码与性能对照值的映射关系以测试用例标识码的字符构成为基准存入二叉搜索树当中,所述二叉搜索树中的每个节点都存有一个测试用例标识码及对应的性能对照值,所述查找单元包括:
71.相似度计算子单元,用于计算所述目标测试用例标识码与所述二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度;
72.对照值调取子单元,用于响应于所述第一相似度大于等于设定阈值,从所述根节点中调取所述第一测试用例标识码对应的第一性能对照值;
73.所述对照值调取子单元,还用于将所述第一性能对照值作为所述目标性能对照值。
74.可选的,所述相似度计算子单元,还用于响应于所述第一相似度小于所述设定阈值,计算所述目标测试用例标识码与所述根节点的左子节点中存储的第二测试用例标识码的第二相似度;
75.所述相似度计算子单元,还用于响应于所述第二相似度小于所述设定阈值且大于等于所述第一相似度,采用递归的方式对所述左子节点的子树中各节点与所述目标测试用例标识码分别进行相似度计算,直至从所述左子节点的子树中确定出相似度大于等于所述设定阈值的第一子树节点;
76.所述对照值调取子单元,还用于从所述第一子树节点存储的数据中调取第二性能对照值,并将所述第二性能对照值作为所述目标性能对照值。
77.可选的,所述相似度计算子单元,还用于响应于所述第二相似度小于所述设定阈值且小于所述第一相似度,计算所述目标测试用例标识码与所述根节点的右子节点中存储的第三测试用例标识码的第三相似度;
78.所述相似度计算子单元,还用于响应于所述第三相似度小于所述设定阈值,采用递归的方式对所述右子节点的子树中各节点与所述目标测试用例标识码分别进行相似度计算,直至从所述右子节点的子树中确定出相似度大于等于所述设定阈值的第二子树节点;
79.所述对照值调取子单元,还用于从所述第二子树节点存储的数据中调取第三性能对照值,并将所述第三性能对照值作为所述目标性能对照值。
80.可选的,所述相似度计算子单元具体用于:
81.使用预设的模式串从所述目标测试用例标识码中匹配出第一关键字段,以及从所述第一测试用例标识码中匹配出第二关键字段,所述模式串为设定有关键字段格式的空白变量;
82.将所述第一关键字段赋值给第一字符串,以及将所述第二关键字段赋值给第二字符串;
83.计算所述第一字符串与所述第二字符串中同一位置上的字符之间的相似度,得到多组字符相似度;
84.根据所述多组字符相似度计算出所述第一字符串与所述第二字符串的所述第一相似度。
85.可选的,所述查找单元还包括:
86.输出子单元,用于响应于所述二叉搜索树的末尾节点中存储的第四测试用例标识码与所述目标测试用例标识码的第四相似度小于所述设定阈值,输出空值,所述空值用于表征所述目标测试用例标识码无法检索到匹配的目标性能对照值。
87.可选的,所述查找单元还包括:
88.录入指令接收子单元,用于接收录入指令,所述录入指令携带有新建性能对照值;
89.映射构建子单元,用于建立所述新建性能对照值与所述目标测试用例标识码之间的映射关系;
90.存储子单元,用于将所述新建性能对照值与所述目标测试用例标识码之间的映射关系以所述目标测试用例标识码的字符构成为基准存储至所述二叉搜索树的新节点中。
91.可选的,所述测试装置还包括:
92.接收单元,用于接收渲染指令,所述渲染指令包括目标表格模板标识码和目标统计图类型标识码;
93.所述查找单元,还用于根据表格模板标识码与表格模板的映射关系,查找出所述目标表格模板标识码对应的目标表格模板;
94.表格绘制单元,用于使用所述第一数据表、所述第二数据表与所述性能评估结果的数据导入所述目标表格模板,生成性能评估表格;
95.所述查找单元,还用于根据统计图类型标识码与统计图底图的映射关系,查找出所述目标统计图类型标识码对应的目标统计图底图;
96.统计图生成单元,用语根据所述第一数据表、所述第二数据表与所述性能评估结
果的数据以及所述目标统计图底图,生成性能评估统计图,所述性能评估统计图包括表征性能对比状况的柱状统计图、表征测试的测试次数累积量的饼状统计图以及表征性能波动状况的折线统计图中的至少一种;
97.输出单元,用于输出所述性能评估表格与所述性能评估统计图。
98.第三方面,本技术实施例提供了一种电子设备,所述电子设备包括至少一个处理器以及与所述至少一个处理器连接的存储器,所述至少一个处理器用于执行存储器中存储的计算机程序时实现如第一方面任一项所述方法的步骤。
99.第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
100.应当理解的是,本技术实施例的第二~四方面与本技术实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
【附图说明】
101.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
102.图1为本技术实施例提供的一种测试方法的流程示意图;
103.图2为本技术实施例提供的一种目标性能对照值的查找方法的流程示意图;
104.图3为本技术实施例提供的一种二叉排序树的结构示意图;
105.图4为本技术实施例提供的一种针对二叉搜索树左子节点及其子树的性能对照值查找方法的流程示意图;
106.图5为本技术实施例提供的一种针对二叉搜索树右子节点及其子树的性能对照值查找方法的流程示意图;
107.图6为本技术实施例提供的一种目标性能对照值查找失败的处理方法的流程示意图;
108.图7为本技术实施例提供的一种在二叉搜索树中新建节点的方法的流程示意图;
109.图8为本技术实施例提供的一种二叉搜索树的节点插入算法的程序框图;
110.图9为本技术实施例提供的另一种二叉搜索树的节点插入算法的程序框图;
111.图10为本技术实施例提供的一种相似度计算方法的流程示意图;
112.图11为本技术实施例提供的一种自动计算性能评估结果的方法的流程示意图;
113.图12为本技术实施例提供的一种性能评估结果的运算流程示意图;
114.图13为本技术实施例提供的一种性能评估结果的可视化渲染方法的流程示意图;
115.图14为本技术实施例提供的一种测试装置的结构示意图;
116.图15为本技术实施例提供的一种电子设备的结构示意图。
【具体实施方式】
117.为了更好的理解本说明书的技术方案,下面结合附图对本技术实施例进行详细描述。
118.应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。
119.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
120.目前的终端性能测试方法中,为测试终端运行某项应用的总体性能指标,发现其性能瓶颈,往往需要执行上万种性能测试用例——即执行某一项功能或操作的性能测试时所需的预编译代码指令,且几乎每种性能测试用例都需要测试近百次。
121.而在执行某项性能测试用例之前,还需要在测试系统中填入性能指标的对照值(例如从历史性能测试中或竞品机的性能测试中得到的性能指标数据),以判断终端的测试值是否优于对照值。而对照值的数据往往需要依赖人工查阅并填写来获得,在执行大批量的终端性能测试任务时,这种方式既浪费人力又降低测试效率。
122.鉴于此,本技术实施例提供了一种测试方法,该方法中,在获得测试用例调用指令时,通过指令中的目标测试用例标识码查找到该目标性能对照值并调用,与测试产生的目标性能测试值共同计算出性能评估结果,从而实现性能对照值查找自动化的效果,减少性能测试过程中的人工操作量,节省人力资源并提升测试效率。
123.下面结合附图对本技术实施例提供的技术方案进行介绍。
124.请参见图1,为本技术实施例提供的一种测试方法,应用于电子设备之中,电子设备可以是桌上型计算机、笔记本电脑、掌上电脑、手机和苹果电脑等移动终端,以及云端服务器等其它计算设备,该方法的步骤如下:
125.步骤101:获得测试用例调用指令,测试用例调用指令中携带有目标测试用例标识码。
126.应理解,在性能测试用例被创建时都会携带一个测试用例标识码,这一标识码一般是与性能测试用例存在唯一对应关系的,且该标识码的格式、内容与当前性能测试用例所适用的命名规则有关。
127.而在本技术实施例中,测试用例标识码不仅用于在创建性能测试用例时与性能测试用例建立映射关系,还用于与性能对照值之间建立另一套映射关系。当测试人员希望基于这两套映射关系调用所需的目标测试用例与目标性能对照值时,就需要先通过测试用例调用指令向测试系统告知一串特定的目标测试用例标识码。
128.而对于测试系统如何获得测试用例调用指令,具体的实现方式包括但不限于:
129.(1)通过可视化界面直接执行选中操作,测试系统根据被选中的选项生成测试用例调用指令;
130.(2)通过向搜索框内键入目标测试用例标识码并执行查找动作来生成测试用例调用指令;
131.(3)通过键入包含目标测试用例标识码的linux命令行或结构化查询语言指令来生成测试用例调用指令。
132.步骤102:根据预设的测试用例标识码与测试用例之间的映射关系,确定目标测试用例标识码对应的目标测试用例。
133.本技术实施例中,通过之前在测试用例调用指令中所包含的目标测试用例标识码,调取对应目标测试用例。需要注意的是,本技术实施例中所提及的目标测试用例泛指一切接入测试系统的终端设备中可运行的性能测试用例,这些性能测试用例的测试内容包括但不限于:压力测试(如模拟高并发用户访问或大规模数据传输)、速度测试(如对比不同网络质量下的下载与上传速度)、精度测试(如测试仪器的数据采集是否精确)、可扩展性测试(如测试负载与数据量)、兼容性测试(如测试软件所兼容的系统或平台)、安全性测试(测试数据保密与数据防篡改)等。
134.同时,性能测试用例由于开发方式的不同,所使用的编程语言或程序框架也有较大区别。其具体使用的开发方式包括但不限于:使用基于安卓系统的安卓调试桥(android debug bridge,简称adb)命令、使用基于java语言的jmeter或gatling框架、使用基于python语言的pytest或unittest框架、使用基于c#语言的visual studio或nunit框架等,本技术实施例对此不作限定。
135.而当通过目标测试用例标识码查找到了对应的性能测试用例后,即可使用该性能测试用例执行后续测试并生成测试结果,以供测试人员进行数据分析。
136.步骤103:根据预设的测试用例标识码与性能对照值之间的映射关系,查找出目标测试用例标识码对应的目标性能对照值。
137.本技术实施例中,在开始执行性能测试之前,还需要填入目标性能对照值,用于在后续数据分析时进行对比。而通过目标测试用例标识码在预先配置的映射关系中查找并调取对应的目标性能对照值,可以免去人工填入对照值并进行计算的麻烦。需要注意的是,所调取的目标性能对照值根据选取的目标测试用例不同可能存在差别。
138.例如,当选取的目标测试用例为“执行登录功能”时,所对应的目标性能对照值就可能为“登录时长”;当目标测试用例为“多用户同时保持在线”时,所对应的目标性能对照值可能为“吞吐量”或“cpu资源使用率”,而当目标测试用例为“多用户同时执行购买操作”时,所对应的目标性能对照值则可能变为“并发用户数”。
139.图2为本技术实施例提供的一种目标性能对照值的查找方法的流程示意图。作为一种可能的实施方式,步骤103可以通过执行子步骤201至203来实现:
140.步骤201:计算目标测试用例标识码与二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度。
141.步骤202:响应于第一相似度大于等于设定阈值,从根节点中调取第一测试用例标识码对应的第一性能对照值。
142.步骤203:将第一性能对照值作为目标性能对照值。
143.本技术实施例中,采用二叉搜索树(又称二叉搜索树、二叉查找树)来存储性能对照值与对应的测试用例标识码。作为一种可能的实施方式,二叉搜索树的结构示意图请参见图3。
144.如图3所示,以二叉搜索树的根节点、左子节点、右子节点的建立过程为例,对整个二叉搜索树的其中一种节点构建方式进行解释:
145.(1)从需要构建二叉搜索树的全部数据项中选择一项(包括一条测试用例标识码及一个对应的性能对照值)存入根节点。为了使后续的二叉搜索树节点构建过程更简单、结构更合理,选用全部数据项中测试用例标识码最具代表性的一项存入根节点,此处的代表
性可以包括:在以往的性能测试中调用最频繁的测试用例对应的标识码、内容最简短的标识码或以其它标准人为筛选出的标识码。
146.(2)从剩余的数据项中查找出共两项数据,分别作为左子节点、右子节点。这两项数据必须满足数据项中的测试用例标识码与根节点中所存储标识码在字符构成上的相似度(在全部数据项中)最高的条件。而由于本技术实施例中的二叉搜索树构建方式与传统二叉搜索树不同,节点中的测试用例标识码之间不存在严格的数值大小区别,仅在彼此的相似度上存在近远关系,因此对这两项数据中哪一项存于左子节点、哪一项存入右子节点无需特别限制。
147.(3)在将上述两项数据存入左子节点、右子节点之后,继续针对左子节点、右子节点中存储的测试用例标识码,从剩余数据项中分别寻找最相似的两项数据,得到共四项数据,并将这四项数据按照类似第(2)条中的节点构建方式存入位于左子节点与右子节点下一层的节点中。
148.(4)重复上述步骤,直到将全部数据项都存入了二叉搜索树的节点中。
149.例如,当需要根据上述方法配置二叉搜索树时,若全部数据项中存在三个数据项的测试用例标识码字符构成分别为“login-t001”、“login-t002”、“login-t003”,且没有其它测试用例标识码的字符构成比“login-t002”、“login-t003”更加近似“login-t001”,那么就可以将“login-t001”存入根节点,“login-t002”、“login-t003”分别存入该根节点的左子节点和右子节点(如上所述,具体哪一项存入左子节点或右子节点并无限制),以此类推,将数据项按照相似度逐层存入二叉搜索树的各节点中,从而导入全部需要存储的数据项并建立起整个二叉搜索树结构。
150.与传统二叉搜索树中采用严格遵循数值大小关系的分支结构执行查找不同,本技术实施例中用于执行搜索匹配的主要内容为节点中所存储的测试用例标识码。这一存储结构在关系型数据库(如mysql、oracle等程序)中能够得到良好支持,且通过一些特定方法在非关系型数据库中实现同样可行,具体的配置方法包括但不限于:使用嵌套文档和子文档、使用图形结构或使用有序集合。
151.在一些实施例中,为了缩短对二叉搜索树的检索时间,此处的二叉搜索树可以更进一步地使用自平衡式二叉搜索树如“阿德尔森-维尔斯基与兰迪斯树(adelson-velskii&landis tree,简称avl树)”、“红黑树”或“平衡树(balanced tree,简称b树)”。这些自平衡式二叉搜索树具有根节点的左右子树层数之差(或层数之差的绝对值)较小的特点,能够避免出现在搜索某一节点时因为分支结构过长而延长搜索时间的情况,提升查询节点的效率;且由于其具备清晰的算法结构与自动调整节点位置的自平衡能力,可以在插入、删除数据时保证二叉搜索树的平衡性,因此能够显著缩短目标性能对照值的平均搜索时间。
152.应理解,由于本技术实施例中对二叉搜索树进行搜索所采用的匹配内容并非普通数值,而是通过测试用例调用指令得到的目标测试用例标识码;因此,需要使用相似度算法对根节点中存储的测试用例标识码与目标测试用例标识码进行相似度计算,并基于得到的相似度数值来判断下一步前往哪个子节点进行匹配,亦或直接调取当前根节点中所存储的第一性能对照值。
153.具体来说,所使用的相似度算法可以包括但不限于:编辑距离算法(也称汉明距离签名算法)、雅卡尔相似系数(jaccard系数)、余弦相似度、最长公共子序列、最长公共子串
等。通过这些算法能够计算出目标测试用例标识码与节点中所存储的测试用例标识码之间的相似度,并在相似度大于等于设定阈值时判断所查找的对象就是当前节点中所存储的测试用例标识码,调取该节点中对应存储的性能对照值。
154.在一些实施例中,由于相似度是在使用目标测试用例标识码与各节点中的测试用例标识码进行匹配后得出的,其数值与各节点唯一对应(例如,第一相似度唯一对应根节点),因此这一数值可以暂存在系统的运行内存当中,基于运行内存读取速度快的优点,可以加快在后续搜索过程中判断子节点所对应的相似度与上层节点(或父节点)的相似度之间数值大小关系的运算速度,并且能随时删除不满足条件相似度数值来节省空间;也可以用缓存的形式存储于节点所在的数据库中,从而在下次输入相同的目标测试用例标识码时直接复用存储于数据库中的相似度数据。而关于相似度比较的具体方法流程在下文中已给出阐释,故此处不再赘述。
155.在一些实施例中,设定阈值的具体数值根据采用的相似度算法的不同也存在一定变动,例如在jaccard系数的计算中,相似度被定义为两个既有相似元素的集合的交集除以它们的并集,其取值范围为0到1,而两个完全相同的集合相似度为1,此时便可采用1或略小于1的数值作为设定阈值;在余弦相似度的计算中,相似度被定义为两个具有相似数值的向量的夹角余弦值,其取值范围为-1到1,且两个完全相同的向量余弦相似度为1,此时同样可采用1或略小于1的数值作为设定阈值;而在编辑距离算法中,相似度被定义为两个文本的汉明距离,取值范围为0到字符串长度,且两个文本完全相同时输出的汉明距离值为0,故此时的设定阈值可以被设定为0或略大于0的任何数值,且判断条件也需要由“相似度大于等于设定阈值”对应调整为“相似度小等于设定阈值”。
156.此外,由于不同算法的相似度数值取值范围不同,在一些实施例中,需要根据具体应用场景来选择合适的算法和取值范围。例如,当测试人员在二叉搜索树中存储了多个竞品机或历史记录的测试用例标识码时,由于这些测试用例标识码可能采取了相同的命名规则,但在命名细节上存在细微差异;而在性能测试中,这些测试用例标识码所对应的性能对照值中的任一项都可以用于后续性能评估。此时就可以根据测试人员的需要适当调低设定阈值的取值,并对搜索方式进行对应修改,使搜索过程更模糊或搜索到的目标性能对照值组数更多。
157.而在计算出根节点所对应的第一相似度,且第一相似度小于设定阈值(即不满足第一测试用例标识码与目标测试用例标识码相似这一条件)时,就需要对根节点下一层级的左子节点进行搜索,以判断接下来在二叉搜索树中的搜索方向。
158.图4为本技术实施例提供的一种针对二叉搜索树左子节点及其子树的性能对照值查找方法的流程示意图。作为一种可能的实施方式,在步骤201之后,还可以进一步执行步骤204至206。
159.步骤204:响应于第一相似度小于设定阈值,计算目标测试用例标识码与根节点的左子节点中存储的第二测试用例标识码的第二相似度。
160.步骤205:响应于第二相似度小于设定阈值且大于等于第一相似度,采用递归的方式对左子节点的子树中各节点分别与目标测试用例标识码进行相似度计算,直至从左子节点的子树中确定出相似度大于等于设定阈值的第一子树节点。
161.步骤206:从第一子树节点存储的数据中调取第二性能对照值,并将第二性能对照
值作为目标性能对照值。
162.本技术实施例中,当第一相似度小于设定阈值时,使用相似度算法计算根节点的左子节点中存储的第二测试用例标识码与目标测试用例标识码之间的相似度,这一动作一般是基于在创建二叉搜索树时所写入的指针实现的。
163.具体来说,在创建二叉搜索树时,每个节点都包括三个参数:一个承载具体数据内容的数据项、一个指向左子树的左指针和一个指向右子树的右指针。指针用来描述节点之间的连接关系,且通常是通过每个节点在内存中的唯一地址来实现的,这个地址一般通过一个指针变量来承载与表示,且指针变量可以指向内存中的任何位置。在本技术实施例中,对节点的跟踪和访问就是通过提前配置的左指针和右指针来实现的。而当搜索过程中,若一个节点不满足条件,传统二叉搜索树会选择左指针还是右指针通常取决于节点所存储数值的大小关系,而因为本技术实施例中用于执行相似度计算的是节点中存储的测试用例标识码,其在第一步优先计算根节点的左子节点还是右子节点理论上不影响搜索结果,故仅提供一种从左子节点开始搜索的实施例,对于在二叉排序树中的具体搜索顺序不做限制。
164.而在计算出第二相似度后,若第二相似度的数值大于等于根节点的第一相似度,且第二相似度仍低于设定阈值,则认为根节点的左子节点仍不为存储了目标性能对照值的节点,但因为左子节点与目标测试用例标识码的相似程度大于根节点,可以沿该节点的子树继续向下搜索。因此,使用递归方式继续查找左子节点的子树(包括左子节点的左子树和右子树,其查找逻辑与上文中“根节点-左子节点”部分的基于相似度查找目标性能对照值的逻辑相同),直到从左子节点的子树中查找到测试用例标识码之间相似度满足条件的第一子树节点,其内部存储的第二性能对照值即为所需要调取的目标性能对照值。
165.在一些实施例中,当第二相似度相对于第一相似度的数值较低时,则认为相比第一测试用例标识码,第二测试用例标识码与目标测试用例标识码之间的相似程度更低,应重新回到上个分支进行搜索。
166.图5为本技术实施例提供的一种针对二叉搜索树右子节点及其子树的性能对照值查找方法的流程示意图。在步骤204之后,还可以进一步执行步骤207至209。
167.步骤207:响应于第二相似度小于设定阈值且小于第一相似度,计算目标测试用例标识码与根节点的右子节点中存储的第三测试用例标识码的第三相似度。
168.步骤208:响应于第三相似度小于设定阈值,采用递归的方式对右子节点的子树中各节点分别与目标测试用例标识码进行相似度计算,直至从右子节点的子树中确定出相似度大于等于设定阈值的第二子树节点。
169.步骤209:从第二子树节点存储的数据中调取第三性能对照值,并将第三性能对照值作为目标性能对照值。
170.由于第二相似度小于第一相似度的情况中,左子节点中所存储的第二测试用例标识码与目标测试用例标识码的相似程度(相比根节点中的第一测试用例标识码)更低。而基于前文中所提到的利用字符构成为基准进行设置的二叉搜索树结构,在左子节点比根节点的相似程度更低的情况下,再对左子节点的子树进行查找显然是既无必要、也不符合二叉搜索树搜索原则的行为。因此,需要回到上个分支,并沿右指针重新计算右子节点对应的第三相似度。
171.若第三相似度大于第一相似度(在利用字符构成为基准的二叉搜索树中,若左子
节点不满足大于等于第一相似度的条件,则右子节点对应的第三相似度大于等于第一相似度为必然发生的情况),但第三相似度仍小于设定阈值,则认为所搜索的目标性能对照值存于右子节点的子树中,因此像上文中查找左子节点的子树一样继续使用递归方式查找右子节点的子树,直到从右子节点的子树中查找到测试用例标识码之间相似度满足条件的第二子树节点,其内部存储的第三性能对照值即为所需要调取的目标性能对照值。
172.在一些实施例中,由于一些特殊原因,可能存在目标测试用例标识码与二叉搜索树中任一节点所存的测试用例标识码之间的相似度都小于设定阈值的情况,这时进行的搜索显然是无法得出结果的,因此需要采取预设的处理措施以免查询程序卡死。
173.图6为本技术实施例提供的一种目标性能对照值查找失败的处理方法的流程示意图。作为一种可能的实施方式,在步骤205之后,还可以进一步执行步骤210。
174.步骤210:响应于二叉搜索树的末尾节点中存储的第四测试用例标识码与目标测试用例标识码的第四相似度小于设定阈值,输出空值,空值用于表征目标测试用例标识码无法检索到匹配的目标性能对照值。
175.本技术实施例中,当在二叉搜索树的末尾节点中仍无法查找到与目标测试用例标识码相似度大于等于设定阈值的测试用例标识码时,则认为是测试人员未提前在数据库内配置存有目标测试用例标识码的节点。在这种情况下,输出空值作为查找结果,可以提示测试人员未能查找到符合条件的目标性能对照值,使其采取进一步的处理措施。
176.图7为本技术实施例提供的一种在二叉搜索树中新建节点的方法的流程示意图。作为一种可能的实施方式,在步骤210之后,还可以进一步执行步骤211至212。
177.步骤211:接收录入指令,录入指令携带有新建性能对照值。
178.步骤212:建立新建性能对照值与目标测试用例标识码之间的映射关系。
179.步骤213:将新建性能对照值与目标测试用例标识码之间的映射关系以目标测试用例标识码的字符构成为基准存储至二叉搜索树的新节点中。
180.本技术实施例中,在输出空值以提示测试人员未搜索到目标性能对照值后,还可以进一步提供新建性能对照值的录入选项,并在测试人员录入新建性能对照值后,将其与之前测试用例调用指令中解析出的目标测试用例标识码进行绑定,存储于二叉搜索树中的新建节点当中。
181.具体来说,为了实现将绑定的目标测试用例标识码与新建性能对照值存储于当前二叉搜索树中,需要使用节点插入算法。
182.传统二叉搜索树所使用的节点插入算法,其算法逻辑与查找二叉搜索树的正常流程近似,即在拿到需要插入二叉搜索树的新节点对应的数据项后,将该数据项与根节点中所存储的数据比较大小关系,并在得到大小关系后进一步用该数据项比对根节点的左子节点与右子节点,直至找到新节点插入的具体位置。
183.而本技术实施例中的二叉搜索树除了所存储的内容不同,以及查找性能对照值所使用的算法为相似度算法之外,其余特征均与传统二叉搜索树相差不大,因此对传统的节点插入算法稍作修改即可适配。
184.作为一种可能的实施方式,节点插入算法的运算逻辑如图8所示:
185.(1)接收测试人员输入的新建性能对照值与对应的目标测试用例标识码,并从根节点开始计算目标测试用例标识码与第一测试用例标识码之间的第一相似度。
186.(2)分别计算目标测试用例标识码与根节点的左子节点所存储的第二测试用例标识码之间的第二相似度,以及与右子节点所存储的第三测试用例标识码之间的第三相似度。
187.(3)判断第一相似度、第二相似度与第三相似度中最大的相似度数值。
188.(4)当相似度数值以第一相似度为最大时,将新建性能对照值及对应的目标测试用例标识码存入根节点下的新建节点中。
189.(5)当相似度数值以第二相似度或第三相似度为最大时,递归地对左子节点或右子节点的两个下层节点执行相同的运算步骤,直至找出下层节点相似度全部小于当前节点的节点位置,并将新建性能对照值及对应的目标测试用例标识码存入当前节点下的新建节点中。
190.(6)对当前二叉搜索树的结构执行旋转操作,以得到包含新建节点且结构符合二叉搜索树排列规则的新二叉搜索树。
191.作为一种可能的实施方式,节点插入算法的另一种运算逻辑如图9所示:
192.(1)接收测试人员输入的新建性能对照值与对应的目标测试用例标识码,并使用中序遍历法将二叉搜索树各节点转换成以字符构成为基准的变量组序列,并将变量i的数值置为1。
193.(2)计算目标测试用例标识码与变量组序列中第i个测试用例标识码之间的相似度,并记录该相似度数值,直至循环计算至变量组序列中的最后一个标识码为止。
194.(3)将新建性能对照值及对应的目标测试用例标识码组成的变量组插入变量组序,并根据记录的全部相似度数值重排变量组顺序。
195.(4)根据新的变量组序列生成新的二叉搜索树。
196.由于节点插入算法同样可以基于多种编程语言与抽象语法树实现,因此对其算法内容不作任何限定,仅展示若干种可行的算法逻辑;且上述算法逻辑示例均为节点插入算法可能的实施例,而非节点插入算法的全部内容。事实上,所有能够实现在二叉搜索树中插入节点效果的算法均应算作节点插入算法的一种实施方式。
197.在一些实施例中,在使用相似度算法计算目标测试用例标识码与各节点的测试用例标识码之间的相似度时,一种可能的实施方式是采用逻辑上与字符串匹配相似的算法进行计算,下面给出具体的计算方法。
198.图10为本技术实施例提供的一种相似度计算方法的流程示意图。步骤201可以通过执行子步骤2011至2014来实现。
199.步骤2011:使用预设的模式串从目标测试用例标识码中匹配出第一关键字段,以及从第一测试用例标识码中匹配出第二关键字段,模式串为设定有关键字段格式的空白变量。
200.步骤2012:将第一关键字段赋值给第一字符串,以及将第二关键字段赋值给第二字符串。
201.步骤2013:计算第一字符串与第二字符串中同一位置上的字符之间的相似度,得到多组字符相似度;
202.步骤2014:根据多组字符相似度计算出第一字符串与第二字符串的第一相似度。
203.本技术实施例中,由于节点中所存储的测试用例标识码中还可能包含一些额外信
息如竞品终端在性能测试时的系统版本号、芯片参数,或被测终端在历史性能测试中的测试时间,又或者其它用于提醒开发人员的字符标注等。而目标测试用例标识码中也同样可能包含这些用于备注的额外信息。因此,需要使用预先设定的模式串匹配出节点中的测试用例标识码与目标测试用例标识码中可用于匹配的关键字段,并在匹配成功后将关键字段分别赋值到第一字符串、第二字符串中,从而实现后续的相似度计算过程,所需要匹配的关键字段可由测试人员根据测试用例命名规则与二叉排序树存储结构自行确定。
204.具体来说,某次测试中所键入的测试用例标识码可能为“android-login-p0123456”,而根节点(即二叉搜索树中需要匹配的第一个节点)里存有的目标测试用例标识码可能为“phone-login-p016789”,此时就需要使用测试人员自行配置或于系统内预设的模式串“@-p01@”来对关键字段进行匹配筛选,其中@表示占位符。而通过筛选后得到的两个字段分别为“login-p0123456”与“login-p016789”,满足字符长度相等的前提条件,即可使用这两段字符串执行后续的相似度计算。而当测试用例标识码的用例规则中包括更具体的命名方式时,可对模式串中所规定的内容进行进一步细化(如直接填入某段详细编号),并在测试用例标识码中查找这段细化后的内容(如直接在标识码中检索上述详细编号)。类似的匹配方式还有很多,本技术实施例对此不做限制。
205.在一些实施例中,当进行相似度计算之前,还可以直接使用哈希算法对目标测试用例标识码与节点中的测试用例标识码进行计算,获得两段长度相等的数字字符串,并比较这两段数字字符串是否相似。此时应将二叉搜索树内部存储的数据项对应调整为每个测试用例标识码对应的唯一哈希值。而在这种情况下,查找思路也可以对应变更为采用字符串匹配的方式在二叉搜索树中进行检索,直至查找到与目标测试用例标识码的哈希值完全一致的测试用例标识码。
206.而在使用模式串对关键字段进行匹配,得到第一字符串、第二字符串之后,即可根据第一字符串与第二字符串中每个位置对应字符的相似度来计算总体的相似度(即第一相似度)。作为这种方法的一个案例,当使用雅卡尔相似系数计算第一字符串、第二字符串之间的相似度时,可将第一字符串、第二字符串中的字符分别拆解为两个不同集合中的多个元素,并逐个计算两个集合中的对应元素之间的相关程度,进而求得两个集合交集大小与并集大小之间的比例(即第一相似度)。类似的实施方式还有很多,本技术实施例亦不作限制。
207.最后,当基于相似度计算从二叉搜索树中检索出了满足条件的目标性能对照值时,还需要通过执行当前测试对应的测试用例,获取目标性能测试值。
208.步骤104:响应于针对测试执行选项的选中命令,执行目标测试用例,获得被测终端的目标性能测试值。
209.本技术实施例中,性能测试一般指通过计算机连接被测终端,并输入性能测试用例中所包含的预编译代码(在上文中已经给出过性能测试用例的可能实现方式),执行预编译代码所规定的动作以获得被测终端的性能指标。由于执行性能测试用例的方式非常多样化,本技术实施例仅阐述其测试原理,而不限制具体的性能测试流程。
210.而当通过执行性能测试用例得到目标性能测试值后,即可通过目标性能测试对照值、目标性能测试值进行后续的性能指标评估。
211.步骤105:根据所目标性能测试值与目标性能对照值,获得被测终端的性能评估结
果。
212.本技术实施例中,性能评估结果的实际数据意义一般包括但不限于:通讯延时、响应时间等,其参数形式则包括但不限于:平均值、中位数、方差、期望值、标准差等常规统计学参数,以及目标性能测试值与目标性能对照值的差值、比值等。而为了自动化执行性能评估结果的计算与输出,以下给出一种可能的实施方式:
213.图11为本技术实施例提供的一种自动计算性能评估结果的方法的流程示意图。步骤105可以通过执行子步骤301至306来实现。
214.步骤301:将目标性能测试值按照第一行名、列名填入预设的空白数据表,生成第一数据表,第一行名为被测终端的机型,列名为测试次数或测试时间。
215.步骤302:将目标性能对照值按照第二行名、列名填入预设的空白数据表,生成第二数据表,第二行名为对照终端的机型。
216.步骤303:接收数据处理指令,数据处理指令携带函数标识码与函数组合规则。
217.步骤304:根据函数标识码从函数库中调用至少一个预封装函数,函数库中存有多个预封装函数,多个预封装函数至少用于实现平均值运算、差值运算、中位数运算和方差运算。
218.步骤305:基于函数组合规则,将至少一个预封装函数组合为数据表处理函数;
219.步骤306:使用数据表处理函数按照行名与列名的预设排列顺序,依次对第一数据表与第二数据表中的数据进行运算,生成性能评估结果。
220.本技术实施例中,一种可能的性能评估结果的具体运算过程如图12所示,由于目标测试用例标识码所对应的目标性能对照值可能并非唯一值,而目标性能测试值也是通过多轮测试所产生的多组数据,因此可以先将目标性能测试值与目标性能对照值分别导入到预设的第一数据表、第二数据表(设定时为空白表格)当中,并使用被测终端的机型、对照终端的机型等参数中适宜的某一项来标注第一行名、第二行名,使用被测终端输出某条结果时的测试时间或测试次数作为该条结果对应的列名。其中,对照终端根据目标性能对照值的实际意义可能存在区别,例如当目标性能对照值为被测终端在历史性能测试中产生的数值时,对照终端即为被测终端本身;而当目标性能对照值为竞品终端在相同测试环境下产生的,则对照终端为竞品终端。
221.而在生成第一数据表、第二数据表后,即可基于测试人员所发送的数据处理指令中的标识码来调用函数库中的预封装函数,并使用该预封装函数组合为数据表处理函数。具体来说,预封装函数可以使用javascript、python在内的任何编程语言进行编写与封装,并可在封装后导入电子表格(excel)软件或其它数据处理程序中进行调用。而预封装函数的调用方式包括但不限于:在可视化界面直接选中预封装函数对应的选项、输入预封装函数对应的唯一标识符或含有标识符的命令行等。其具体的计算功能可以包括上文中所提到的平均数计算、中位数计算、期望值计算、方差计算等的任意一种,且函数库中的全部预封装函数能够涵盖每一种测试人员可能用到的数据计算功能。
222.此外,在调用预封装函数并按照函数组合规则组合成数据表处理函数时,其组合方式可以包括:使用多条基础的预封装函数来实现更高级的计算功能,或在同一个数据表处理函数中包含多项不同的预封装函数来输出一个包含多项参数的矩阵或数据表。由于其组合方式同样有很多,且只需通过预封装函数的组合实现测试人员的性能评估需求即可,
因此本技术实施例仅阐述使用预封装函数组合出数据表处理函数的原理,不限制其具体实施方式。
223.而在使用数据表处理函数计算出包含多项性能指标及性能对比数据的性能评估结果后,还可以通过可视化渲染的方式来进一步向测试人员呈现测试结果,方便测试人员直观了解性能短板。
224.图13为本技术实施例提供的一种性能评估结果的可视化渲染方法的流程示意图。作为一种可能的实施方式,在步骤306之后,还可以进一步执行步骤307至312。
225.步骤307:接收渲染指令,渲染指令包括目标表格模板标识码和目标统计图类型标识码。
226.步骤308:根据表格模板标识码与表格模板的映射关系,查找出目标表格模板标识码对应的目标表格模板。
227.步骤309:使用第一数据表、第二数据表与性能评估结果的数据导入目标表格模板,生成性能评估表格。
228.步骤310:根据统计图类型标识码与统计图底图的映射关系,查找出目标统计图类型标识码对应的目标统计图底图。
229.步骤311:根据第一数据表、第二数据表与性能评估结果的数据以及目标统计图底图,生成性能评估统计图,性能评估统计图包括表征性能对比状况的柱状统计图、表征测试的测试次数累积量的饼状统计图以及表征性能波动状况的折线统计图中的至少一种。
230.步骤312:输出性能评估表格与性能评估统计图。
231.本技术实施例中,由于得到的性能评估结果缺乏直观性,使得测试人员在测试后的性能指标分析过程中无法直观比对被测终端与对照终端之间的性能差异,因此需要在测试后通过自动渲染可视化的表格、统计图的方式来增强数据直观性。
232.为了实现这一效果,测试人员可以在测试系统的操作界面中选择期望生成的图表类型,或直接键入相关命令代码以生成渲染指令。随后,测试系统会根据渲染指令中包含的目标表格模板标识码自动查找到对应的表格模板,且该表格模板为预先配置于测试系统数据库当中的空白表格。测试系统中存储的表格模板可以覆盖测试人员的绝大部分表格生成需求。
233.在一些实施例中,所导入的数据可以根据第一行名、第二行名和列名自动在性能评估表格中实现排序,方便测试人员按类别区分不同数据。同时,当测试人员不需要呈现某些数据(如过时的对照值、测试故障导致数据不具有代表性的测试值)时,测试系统还可以根据渲染指令中包含的表格数据筛选信息自动过滤掉某些测试时间、终端机型对应的数据条目,使得表格中用于对比的数据更具有代表性。
234.而在生成性能评估表格之外,还可以根据渲染指令中包含的目标统计图类型标识码从测试系统数据库中调取预先配置的统计图底图,即未填入任何统计图坐标、未绘制任何参数图像的空白底图。统计图的具体类型包括但不限于:
235.(1)柱状统计图,可用于对比被测终端与对照终端在性能指标上的差异。其中柱状统计图的横坐标可以是被测终端以及对照终端的机型,纵坐标可以是被测终端与对照终端对应的性能指标数值(单位包括但不限于:秒、毫秒、百分比等)。
236.(2)饼状统计图,可用于比较不同被测终端与不同对照终端的测试次数累积量,比
对测试结果是否具有普遍性与客观性。其中饼状统计图的不同扇形区块可以代表不同的被测终端、对照终端的机型,不同扇形区块所占的面积可以代表被测终端或对照终端的测试样本累积量在全部数据样本(即第一数据表、第二数据表中的全部数据)中所占比例。
237.(3)折线统计图,可用于分析被测终端在一次测试中的性能指标是否存在较大波动,用于评估某一机型终端的性能稳定性。其中折线统计图的横坐标可以是测试次数或测试时间,纵坐标可以是在某次测试或某个测试时间点所测得的性能指标数值。
238.由于常见统计图的类型较多,且利用统计图呈现数据的目的、方式可以根据测试人员的需要进行针对性调整,本技术实施例对此不作过多限制。
239.应理解,性能评估表格与性能评估统计图的呈现方式可以包括任何用于可视化呈现的程序或文件,包括但不限于:使用电子表格(excel)文件、超文本标记语言(html)文件、便携式文件格式(pdf)文件等格式的文件进行呈现,或者ableauqlikview、power bi、sas visual analytics等数据可视化软件呈现。
240.在一些实施例中,性能评估表格与性能评估统计图的可视化呈现方式还可以包括:使用python语言、r语言数据可视化库、javascript数据可视化库等带有数据可视化功能或数据可视化第三方库的编程语言,本技术实施例对输出所使用的具体编程语言及开发人员的编程方式不作限制。
241.请参见图14,基于同一发明构思,本技术实施例还提供了一种测试装置,该装置包括:
242.指令获取单元401,用于获得测试用例调用指令,测试用例调用指令中携带有目标测试用例标识码;
243.确定单元402,用于根据预设的测试用例标识码与测试用例之间的映射关系,确定目标测试用例标识码对应的目标测试用例;
244.查找单元403,用于根据预设的测试用例标识码与性能对照值之间的映射关系,查找出目标测试用例标识码对应的目标性能对照值;
245.测试单元404,用于响应于针对测试执行选项的选中命令,执行目标测试用例,获得被测终端的目标性能测试值;
246.性能评估单元405,用于根据目标性能测试值与目标性能对照值,获得被测终端的性能评估结果。
247.可选的,性能评估单元405具体用于:
248.将目标性能测试值按照第一行名、列名填入预设的空白数据表,生成第一数据表,第一行名为被测终端的机型,列名为测试次数或测试时间;
249.将目标性能对照值按照第二行名、列名填入预设的空白数据表,生成第二数据表,第二行名为被测终端或竞品终端的机型;
250.接收数据处理指令,数据处理指令携带函数标识码与函数组合规则;
251.根据函数标识码从函数库中调用至少一个预封装函数,函数库中存有多个预封装函数,多个预封装函数至少用于实现平均值运算、差值运算、中位数运算和方差运算;
252.基于函数组合规则,将至少一个预封装函数组合为数据表处理函数;
253.使用数据表处理函数按照第一行名、第二行名与列名的预设排列顺序,依次对第一数据表与第二数据表中的数据进行运算,生成性能评估结果。
254.可选的,测试用例标识码与性能对照值的映射关系以测试用例标识码的字符构成为基准存入二叉搜索树当中,二叉搜索树中的每个节点都存有一个测试用例标识码及对应的性能对照值,查找单元403包括:
255.相似度计算子单元,用于计算目标测试用例标识码与二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度;
256.对照值调取子单元,用于响应于第一相似度大于等于设定阈值,从根节点中调取第一测试用例标识码对应的第一性能对照值;
257.对照值调取子单元,还用于将第一性能对照值作为目标性能对照值。
258.可选的,相似度计算子单元,还用于响应于第一相似度小于设定阈值,计算目标测试用例标识码与根节点的左子节点中存储的第二测试用例标识码的第二相似度;
259.相似度计算子单元,还用于响应于第二相似度小于设定阈值且大于等于第一相似度,采用递归的方式对左子节点的子树中各节点与目标测试用例标识码分别进行相似度计算,直至从左子节点的子树中确定出相似度大于等于设定阈值的第一子树节点;
260.对照值调取子单元,还用于从第一子树节点存储的数据中调取第二性能对照值,并将第二性能对照值作为目标性能对照值。
261.可选的,相似度计算子单元,还用于响应于第二相似度小于设定阈值且小于第一相似度,计算目标测试用例标识码与根节点的右子节点中存储的第三测试用例标识码的第三相似度;
262.相似度计算子单元,还用于响应于第三相似度小于设定阈值,采用递归的方式对右子节点的子树中各节点与目标测试用例标识码分别进行相似度计算,直至从右子节点的子树中确定出相似度大于等于设定阈值的第二子树节点;
263.对照值调取子单元,还用于从第二子树节点存储的数据中调取第三性能对照值,并将第三性能对照值作为目标性能对照值。
264.可选的,相似度计算子单元具体用于:
265.使用预设的模式串从目标测试用例标识码中匹配出第一关键字段,以及从第一测试用例标识码中匹配出第二关键字段,模式串为设定有关键字段格式的空白变量;
266.将第一关键字段赋值给第一字符串,以及将第二关键字段赋值给第二字符串;
267.计算第一字符串与第二字符串中同一位置上的字符之间的相似度,得到多组字符相似度;
268.根据多组字符相似度计算出第一字符串与第二字符串的第一相似度。
269.可选的,查找单元403还包括:
270.输出子单元,用于响应于二叉搜索树的末尾节点中存储的第四测试用例标识码与目标测试用例标识码的第四相似度小于设定阈值,输出空值,空值用于表征目标测试用例标识码无法检索到匹配的目标性能对照值。
271.可选的,查找单元403还包括:
272.录入指令接收子单元,用于接收录入指令,录入指令携带有与目标测试用例标识码对应的新建性能对照值;
273.存储子单元,用于将新建性能对照值与目标测试用例标识码按照目标测试用例标识码的字符构成绑定存储至二叉搜索树的新节点中。
274.可选的,测试装置还包括:
275.接收单元,用于接收渲染指令,渲染指令包括目标表格模板标识码和目标统计图类型标识码;
276.查找单元403,还用于根据表格模板标识码与表格模板的映射关系,查找出目标表格模板标识码对应的目标表格模板;
277.表格绘制单元,用于使用第一数据表、第二数据表与性能评估结果的数据导入目标表格模板,生成性能评估表格;
278.查找单元403,还用于根据统计图类型标识码与统计图底图的映射关系,查找出目标统计图类型标识码对应的目标统计图底图;
279.统计图生成单元,用于根据第一数据表、第二数据表与性能评估结果的数据以及目标统计图底图,生成性能评估统计图,性能评估统计图包括表征性能对比状况的柱状统计图、表征测试的测试次数累积量的饼状统计图以及表征性能波动状况的折线统计图中的至少一种;
280.输出单元,用于输出性能评估表格与性能评估统计图。
281.请参见图15,基于同一发明构思,本技术实施例还提供了一种电子设备500,该电子设备500可以包括至少一个处理器,该至少一个处理器用于执行存储器中存储的计算机程序,实现本技术实施例提供的如图1-图14所示的测试方法的步骤。
282.可选的,上述处理器具体可以是中央处理器、特定asic,可以是一个或多个用于控制程序执行的集成电路。
283.可选的,该电子设备还可以包括与至少一个处理器501连接的存储器502,存储器502可以包括rom、ram和磁盘存储器。存储器502用于存储处理器501运行时所需的数据,即存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,执行如图1-图14所示的方法。其中,存储器502的数量为一个或多个。
284.其中,指令获取单元401、确定单元402、查找单元403、测试单元404和性能评估单元405所对应的实体设备均可以是前述的处理器501。该电子设备可以用于执行图1-图14所示的实施例所提供的方法。因此关于该电子设备中各功能单元所能够实现的功能,可参考图1-图14所示的实施例中的相应描述,不多赘述。
285.此外,本技术实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行图1-图14所述的方法。
286.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

技术特征:
1.一种测试方法,其特征在于,所述方法包括:获得测试用例调用指令,所述测试用例调用指令中携带有目标测试用例标识码;根据预设的测试用例标识码与测试用例之间的映射关系,确定所述目标测试用例标识码对应的目标测试用例;根据预设的测试用例标识码与性能对照值之间的映射关系,查找出所述目标测试用例标识码对应的目标性能对照值;响应于针对测试执行选项的选中命令,执行所述目标测试用例,获得被测终端的目标性能测试值;根据所述目标性能测试值与所述目标性能对照值,获得所述被测终端的性能评估结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标性能测试值与所述目标性能对照值,获得所述被测终端的性能评估结果包括:将所述目标性能测试值按照第一行名、列名填入预设的空白数据表,生成第一数据表,所述第一行名为所述被测终端的机型,所述列名为测试次数或测试时间;将所述目标性能对照值按照第二行名、所述列名填入预设的空白数据表,生成第二数据表,所述第二行名为对照终端的机型;接收数据处理指令,所述数据处理指令携带函数标识码与函数组合规则;根据所述函数标识码从函数库中调用至少一个预封装函数,所述函数库中存有多个预封装函数,所述多个预封装函数至少用于实现平均值运算、差值运算、中位数运算和方差运算;基于所述函数组合规则,将所述至少一个预封装函数组合为数据表处理函数;使用所述数据表处理函数按照所述第一行名、所述第二行名与所述列名的预设排列顺序,依次对所述第一数据表与所述第二数据表中的数据进行运算,生成所述性能评估结果。3.根据权利要求1所述的方法,其特征在于,所述测试用例标识码与性能对照值的映射关系以测试用例标识码的字符构成为基准存入二叉搜索树当中,所述二叉搜索树中的每个节点都存有一个测试用例标识码及对应的性能对照值,所述根据预设的测试用例标识码与性能对照值之间的映射关系,查找出所述目标测试用例标识码对应的目标性能对照值包括:计算所述目标测试用例标识码与所述二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度;响应于所述第一相似度大于等于设定阈值,从所述根节点中调取所述第一测试用例标识码对应的第一性能对照值;将所述第一性能对照值作为所述目标性能对照值。4.根据权利要求3所述的方法,其特征在于,所述计算目标测试用例标识码与所述二叉搜索树的根节点中存储的第一测试用例标识码的第一相似度之后,所述方法还包括:响应于所述第一相似度小于所述设定阈值,计算所述目标测试用例标识码与所述根节点的左子节点中存储的第二测试用例标识码的第二相似度;响应于所述第二相似度小于所述设定阈值且大于等于所述第一相似度,采用递归的方式对所述左子节点的子树中各节点分别与所述目标测试用例标识码进行相似度计算,直至
从所述左子节点的子树中确定出相似度大于等于所述设定阈值的第一子树节点;从所述第一子树节点存储的数据中调取第二性能对照值,并将所述第二性能对照值作为所述目标性能对照值。5.根据权利要求4所述的方法,其特征在于,所述计算所述目标测试用例标识码与所述根节点的左子节点中存储的第二测试用例标识码的第二相似度之后,所述方法还包括:响应于所述第二相似度小于所述设定阈值且小于所述第一相似度,计算所述目标测试用例标识码与所述根节点的右子节点中存储的第三测试用例标识码的第三相似度;响应于所述第三相似度小于所述设定阈值,采用递归的方式对所述右子节点的子树中各节点分别与所述目标测试用例标识码进行相似度计算,直至从所述右子节点的子树中确定出相似度大于等于所述设定阈值的第二子树节点;从所述第二子树节点存储的数据中调取第三性能对照值,并将所述第三性能对照值作为所述目标性能对照值。6.根据权利要求3所述的方法,其特征在于,所述计算所述目标测试用例标识码与所述二叉搜索树的根节点中存储的第一用例标识码的第一相似度包括:使用预设的模式串从所述目标测试用例标识码中匹配出第一关键字段,以及从所述第一测试用例标识码中匹配出第二关键字段,所述模式串为设定有关键字段格式的空白变量;将所述第一关键字段赋值给第一字符串,以及将所述第二关键字段赋值给第二字符串;计算所述第一字符串与所述第二字符串中同一位置上的字符之间的相似度,得到多组字符相似度;根据所述多组字符相似度计算出所述第一字符串与所述第二字符串的所述第一相似度。7.根据权利要求4所述的方法,其特征在于,所述响应于所述第二相似度小于所述设定阈值且大于等于所述第一相似度,采用递归的方式对所述左子节点的子树中各节点与所述目标测试用例标识码分别进行相似度计算,直至从所述左子节点的子树中确定出相似度大于等于所述设定阈值的第一子树节点之后,所述方法还包括:响应于所述二叉搜索树的末尾节点中存储的第四测试用例标识码与所述目标测试用例标识码的第四相似度小于所述设定阈值,输出空值,所述空值用于表征所述目标测试用例标识码无法检索到匹配的目标性能对照值。8.根据权利要求7所述的方法,其特征在于,所述响应于所述二叉搜索树的末尾节点中存储的第四测试用例标识码与所述目标测试用例标识码的第四相似度小于所述设定阈值,输出空值之后,所述方法还包括:接收录入指令,所述录入指令携带有所述目标测试用例标识码对应的新建性能对照值;建立所述新建性能对照值与所述目标测试用例标识码之间的映射关系;将所述新建性能对照值与所述目标测试用例标识码之间的映射关系以所述目标测试用例标识码的字符构成为基准存储至所述二叉搜索树的新节点中。9.根据权利要求2所述的方法,其特征在于,所述使用所述数据表处理函数按照所述第
一行名、所述第二行名与所述列名的预设排列顺序,依次对所述第一数据表与所述第二数据表中的数据进行运算,生成所述性能评估结果之后,所述方法还包括:接收渲染指令,所述渲染指令包括目标表格模板标识码和目标统计图类型标识码;根据表格模板标识码与表格模板的映射关系,查找出所述目标表格模板标识码对应的目标表格模板;使用所述第一数据表、所述第二数据表与所述性能评估结果的数据导入所述目标表格模板,生成性能评估表格;根据统计图类型标识码与统计图底图的映射关系,查找出所述目标统计图类型标识码对应的目标统计图底图;根据所述第一数据表、所述第二数据表与所述性能评估结果的数据以及所述目标统计图底图,生成性能评估统计图,所述性能评估统计图包括表征性能对比状况的柱状统计图、表征测试的测试次数累积量的饼状统计图以及表征性能波动状况的折线统计图中的至少一种;输出所述性能评估表格与所述性能评估统计图。10.一种测试装置,其特征在于,所述装置包括:指令获取单元,用于获得测试用例调用指令,所述测试用例调用指令中携带有目标测试用例标识码;确定单元,用于根据预设的测试用例标识码与测试用例之间的映射关系,确定所述目标测试用例标识码对应的目标测试用例;查找单元,用于根据预设的测试用例标识码与性能对照值之间的映射关系,查找出所述目标测试用例标识码对应的目标性能对照值;测试单元,用于响应于针对测试执行选项的选中命令,执行所述目标测试用例,获得被测终端的目标性能测试值;性能评估单元,根据所述目标性能测试值与所述目标性能对照值,获得所述被测终端的性能评估结果。11.一种电子设备,其特征在于,所述电子设备包括至少一个处理器以及与所述至少一个处理器连接的存储器,所述至少一个处理器用于执行存储器中存储的计算机程序时实现如权利要求1-9任一项所述方法的步骤。12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述方法的步骤。

技术总结
本申请实施例提出了一种测试方法、装置、电子设备及存储介质,能够在终端性能测试时自动对存储的性能对照值进行查找、调取,从而减少性能测试过程中的人工操作量,节省人力资源并提升测试效率。其中,测试方法包括:获得测试用例调用指令,测试用例调用指令携带有目标测试用例标识码;根据预设的测试用例标识码与测试用例的映射关系,确定目标测试用例标识码对应的目标测试用例;根据预设的测试用例标识码与性能对照值的映射关系,查找出目标测试用例标识码对应的目标性能对照值;响应于针对测试执行选项的选中命令,执行目标测试用例,获得被测终端的目标性能测试值;根据目标性能测试值与目标性能对照值,获得被测终端的性能评估结果。结果。结果。


技术研发人员:李菲
受保护的技术使用者:展讯通信(天津)有限公司
技术研发日:2023.05.26
技术公布日:2023/9/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐