基于DOM树结构的UI自动化diff断言方法及装置制造方法及图纸

技术编号:34054722 阅读:18 留言:0更新日期:2022-07-06 16:41
本发明专利技术提出了一种基于DOM树结构的UI自动化diff断言方法及装置,所述方法包括:在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件;当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件;将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试通过。所述装置使用了所述方法。本发明专利技术使得测试人员无需手动编写页面的断言,提高了用例的编写效率;同时,通过将状态快照文件与基线文件进行对比,比对方式相对于手动编写断言而言更加简单,比对信息更加全面,不易出现遗漏的情况,进一步提高了测试效率和测试的可靠性。靠性。靠性。

Method and device of UI automatic diff assertion based on DOM tree structure

【技术实现步骤摘要】
基于DOM树结构的UI自动化diff断言方法及装置


[0001]本专利技术涉及软件测试
,具体涉及一种基于DOM树结构的UI自动化diff断言方法及装置。

技术介绍

[0002]在UI自动化测试执行过程中,常常遵循以下技术规则:自动化模拟用户在被测产品的页面上操作页面控件,按预期执行完一段操作后,需要判断页面反馈是否符合预期。
[0003]如图1和图2所示的自动化程序在页面上模拟课堂互动签到业务,需要如下几个步骤:操作:1.老师角色的程序对象打开签到卡;2.老师角色的程序对象在签到卡上输入签到提示语及签到倒计时秒数;3.老师角色的程序对象点击发送签到按钮。
[0004]断言:a. 学生角色的程序对象是否收到来自老师的签到卡;b. 学生角色的程序对象收到的签到卡的提示语 是否与老师书写的一致;c. 学生角色的程序对象收到的签到卡的倒计时 是否与老师的填写的一致;d.学生角色的程序对象静候数秒,签到卡的倒计时是否如期递减。
[0005]对应于上述操作步骤,伪代码如下:class TestCheckin:def test_teacher_send_checkin_card(self):
ꢀꢀꢀꢀ
teacher.open_checkin_card()
ꢀꢀꢀꢀ
teacher.input_checkin_theme(content='各位同学开始签到了')
ꢀꢀꢀꢀ
teacher.setting_checkin_timeout(seconds=30)
ꢀꢀꢀꢀ
teacher.send_checkincard()
ꢀꢀꢀꢀ
student.assert_received_checkin_card()
ꢀꢀꢀꢀ
student.assert_the_checkin_card_theme(content="各位同学开始签到了")
ꢀꢀꢀꢀ
student.assert_the_checkin_card_timeout(30)
ꢀꢀꢀꢀ
time.sleep(3)
ꢀꢀꢀꢀ
student.assert_the_checkin_card_timeout(27)
ꢀꢀꢀꢀ
# 检查无误,学生执行签到操作
ꢀꢀꢀꢀ
student.action_checkin()以上的代码编写模式在写UI自动化测试用例时是交替进行的,写一段操作步骤后就需要针对这些操作步骤写一部分断言,这样做的缺点有:1、有时候一个操作会引起页面多维度的变化,且断言需要手动编写,效率不高;
2、手动编写断言会出现遗漏情况,且测试覆盖度不高,容易导致用例的失效;3、如果测试用例过程有变动维护,那么维护用例的工作量是十分庞大的。

技术实现思路

[0006]针对现有技术的不足,本专利技术提出一种基于DOM树结构的UI自动化diff断言方法及装置,解决了现有技术中UI自动化测试用例时,需要手动编写断言,效率不高,易出现遗漏和用例失效的缺陷。
[0007]本专利技术的技术方案是这样实现的:一种基于DOM树结构的UI自动化diff断言方法,其特征在于,包括:在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件;当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件;将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试通过;所述在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件的步骤,包括:在UI自动化测试执行过程中,获取Web页面的 dom结构的字符串对象;转换 dom结构的字符串对象为json格式;判断基线文件是否存在,不存在则创建;将基线状态保存成JSON文件;若基线文件不存在,新建并写入基线数据;若基线文件存在但是为空,写入基线数据;根据所述基线数据和Web页面对象正确的状态值,生成基线文件;所述当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件的步骤,包括:在需要断言的操作步骤处注入diff断言埋点;当重复运行同样的测试用例代码时,根据Web页面对象的实际状态值,生成状态快照文件。
[0008]在其中一个实施例中,上述所述将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试通过的步骤,包括:将所述基线文件和状态快照文件在整个Web页面范围内进行diff比对;当比对结果一致时,判断测试通过。
[0009]在其中一个实施例中,上述所述当比对结果一致时,判断测试通过的步骤,包括:获取Web页面的噪点元素特征库;根据所述Web页面的噪点元素特征库,判断状态快照文件对应Web页面中各噪点元素的阈值;当各所述噪点元素的阈值符合噪点控制规则时,判断测试通过。
[0010]在其中一个实施例中,上述根据所述基线数据和Web页面对象正确的状态值,生成基线文件的步骤之前,还包括:
当业务修改或用例维护时,在对应的操作步骤处重新新建基线数据。
[0011]本专利技术还提供了一种基于DOM树结构的UI自动化diff断言装置,包括:建立模块,用于在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件;生成模块,用于当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件;比对模块,用于将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试通过;所述建立模块,具体用于:在UI自动化测试执行过程中,获取Web页面的 dom结构的字符串对象;转换 dom结构的字符串对象为json格式;判断基线文件是否存在,不存在则创建;将基线状态保存成JSON文件;若基线文件不存在,新建并写入基线数据;若基线文件存在但是为空,写入基线数据;根据所述基线数据和Web页面对象正确的状态值,生成基线文件;所述生成模块,具体用于:在需要断言的操作步骤处注入diff断言埋点;当重复运行同样的测试用例代码时,根据Web页面对象的实际状态值,生成状态快照文件;所述比对模块,具体用于:将所述基线文件和状态快照文件在整个Web页面范围内进行diff比对;当比对结果一致时,判断测试通过。
[0012]本专利技术还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的基于DOM树结构的UI自动化diff断言方法。
[0013]本专利技术还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述的基于DOM树结构的UI自动化diff断言方法。
[0014]本专利技术实施例通过在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件,当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件;将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DOM树结构的UI自动化diff断言方法,其特征在于,包括:在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件;当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件;将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试通过;所述在UI自动化测试执行过程中,当测试用例代码初次运行时,保障产品无bug的前提下,建立基线文件的步骤,包括:在UI自动化测试执行过程中,获取Web页面的 dom结构的字符串对象;转换 dom结构的字符串对象为json格式;判断基线文件是否存在,不存在则创建;将基线状态保存成JSON文件;若基线文件不存在,新建并写入基线数据;若基线文件存在但是为空,写入基线数据;根据所述基线数据和Web页面对象正确的状态值,生成基线文件;所述当重复运行同样的测试用例代码时,在对应的操作步骤生成状态快照文件的步骤,包括:在需要断言的操作步骤处注入diff断言埋点;当重复运行同样的测试用例代码时,根据Web页面对象的实际状态值,生成状态快照文件。2.如权利要求1所述的方法,其特征在于,所述将状态快照文件与基线文件进行对比,当比对结果符合预设条件时,判断测试通过的步骤,包括:将所述基线文件和状态快照文件在整个Web页面范围内进行diff比对;当比对结果一致时,判断测试通过。3.如权利要求2所述的方法,其特征在于,所述当比对结果一致时,判断测试通过的步骤,包括:获取Web页面的噪点元素特征库;根据所述Web页面的噪点元素特征库,判断状态快照文件对应Web页面中各噪点元素的阈值;当各所述噪点元素的阈值符合噪点控制规则时,判断测试通过。4.如权利要求3所述的方法,其特征在于,根据所述基...

【专利技术属性】
技术研发人员:曹立品白剑黄海亮梁瑛玮张海林鲁和平李长杰陈焕然李乐王浩洪行健冷冬丁一
申请(专利权)人:广州易方信息科技股份有限公司
类型:发明
国别省市:

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

1