System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种ui自动化测试的方法。
技术介绍
1、目前,大多数ui自动化测试依赖于元素定位方式,通过在网页或者应用中查找元素的绝对路径来实现测试脚本的定位、输入、点击和内容获取等操作。然而,随着前端技术的不断发展,出现了元素反向生成技术,使得现有的ui自动化测试存在以下技术难题:
2、1、元素反向生成技术导致元素路径的生成变得不确定且进行了加密处理,因此无法通过传统的元素定位方式准确获取元素位置。
3、2、这种不确定性的元素路径生成技术也带来了另一个问题,即在测试过程中无法获取ui页面的准确布局信息。因为测试脚本无法事先确定元素的路径,传统的元素定位方式难以提供足够的信息来描述页面结构。这使得测试脚本对界面元素的判定变得不够严谨,从而影响了测试的可靠性和准确性。
4、3、新增的页面导致原有的自动化测试脚本不可用,需要新开发脚本以适用新项目。
5、4、目前的项目快速迭代,导致新增的页面导致原有的页面相对位置变化很大,自动化测试维护成本较高。
技术实现思路
1、本专利技术的目的是为了解决现有技术中存在的缺点,而提出的一种ui自动化测试的方法。
2、为实现上述目的,本专利技术采用了如下技术方案:一种ui自动化测试的方法,包括以下步骤;
3、s1、通过程序主入口加载配置文件,以及图像库,从而确定自动化测试平台和所需的基础图像,得到所需的基础图像和测试范围;
4、所述程序为python程
5、所述程序主入口为python程序的入口文件,所述入口文件命名规则为***_run_***;
6、所述配置文件为用户可自定义存放于用户本地电脑的json文件;
7、配置文件通过指定参数加载所需的基础图像,
8、配置文件通过指定参数加载所需的测试范围,
9、指定参数为人工写在json文件中的参数;
10、测试范围为人工写在json文件中的范围,测试范围在json文件中以文字的形式出现;
11、所述图像库是指,为了多用户共享资源所建立的图像云平台,用户可在该平台对基础图像做增删改查;
12、所述基础图像为图像云平台中的图像;
13、所述自动化测试平台为对于需要回归测试的ui页面可替代人工测试,从而节省测试时间和人力的ui测试平台;所述自动化测试平台可连接图像云平台获取基础图像。
14、项目新增的功能虽然影响了原有功能的元素路径,但不会影响原有页面的样式布局,所以原有测试脚本仍然可用,如有需要,只需增加新功能的基础图像即可。本专利技术根据步骤s1得到的测试范围自动生成用例可执行脚本,使得原有基础图像和用例可执行脚本不需要维护。解决了新增的页面导致原有的自动化测试脚本不可用,需要新开发脚本以适用新项目的技术难题。
15、s2、根据步骤s1得到的测试范围自动生成用例可执行脚本;
16、main函数根据测试范围,通过python动态生成代码方式生成一条条的可执行用例,该可执行用例即为用例可执行脚本。
17、s3、用例可执行脚本连接图像云平台,并应用ui图像和基础图像精准定位算法,精准定位所需的操作或者判定数据位置;
18、具体包括以下子步骤:
19、s31、利用浏览器driver获取实时截图,得到ui图像;
20、所述浏览器driver为控制浏览器的驱动;
21、所述实时截图为利用浏览器driver所呈现的ui界面得到的ui界面截图;
22、s32、连接图像云平台下载所需的基础图像,得到基础图像;
23、s33、将步骤s31和步骤s32的ui图像和基础图像分别做灰度处理,并将ui图像和基础图像中的每个像素转换为0-255的数值区间;0代表纯黑,255代表纯白,0-255之间的数值代表纯黑至纯白之间的颜色;
24、分别得到ui图像的数字矩阵和基础图像的数字矩阵;
25、ui图像的数字矩阵为实际测试矩阵,基础图像的数字矩阵为预期矩阵。
26、本专利技术将彩色图像转灰度处理,即对图像做降维处理,将三维转一维,提升了图像识别的效率,相当于提高了步骤s34至少3倍的平移效率。
27、s34、将预期矩阵以平移的方式在实际测试矩阵中,由左上角逐行平移至右下角,获取与目标矩阵相似度最高的位置,得到相似度数值,和预期矩阵与实际测试矩阵相似度数值最高的位置的坐标(x,y)。
28、本专利技术因为逐个像素点比对,不会遗漏图像区域,并且能够返回所有的相似度数值和相似度数值最高的位置的坐标(x,y)。
29、s35、设相似度的数值为a,判定a是否大于即设定的阈值,从而确定成功或失败,以及x、y坐标;
30、设定的阈值为人工在配置文件中设定的相似度的最小值;
31、若a大于设定的阈值,则步骤s34得到的相似度数值a和坐标(x,y)有效;
32、若a小于设定的阈值,则步骤s34得到的相似度数值a和坐标(x,y)无效;
33、还包括以下子步骤:
34、s351、若步骤s34得到的相似度数值a和坐标(x,y)无效,则通过show模式组件查看失败原因;
35、转入人工分析;
36、s352、若步骤s34得到的相似度数值a和坐标(x,y)有效,则执行步骤s4。
37、本专利技术采用ui图像和基础图像精准定位算法,不依赖元素反向生成技术从而获取元素位置,解决了元素反向生成技术导致的元素路径的生成变得不确定且进行了加密处理,无法通过传统的元素定位方式准确获取元素位置的技术难题。
38、s4、将步骤s3的结果集录入测试报告;
39、所述步骤s3的结果集为有效的相似度数值a和坐标(x,y),以及无效的相似度数值a和坐标(x,y);
40、所述测试报告为beautifulreport组件缓存空间。
41、s5、步骤s1生成的每个用例可执行脚本逐个执行s2-s4的步骤;
42、s6、待所有用例可执行脚本执行完成后,生成并输出项目测试报告,以邮件的方式通知相关人员;
43、所述项目测试报告,将beautifulreport组件缓存空间的数据解读为相关人员可读的html形式的静态页面。
44、与现有技术相比,本专利技术的有益效果为:
45、1、本专利技术采用ui图像和基础图像精准定位算法,不依赖元素反向生成技术从而获取元素位置,解决了元素反向生成技术导致的元素路径的生成变得不确定且进行了加密处理,无法通过传统的元素定位方式准确获取元素位置的技术难题。
46、2、目前,对于ios的ui界面和android的ui界面的自动化测试,主要使用元素定位的方式进行测试,采用元素定位方式时,当ui界面随着用户的行为习惯而发生不同的变化时,元素定本文档来自技高网...
【技术保护点】
1.一种UI自动化测试的方法,其特征在于:包括以下步骤;
2.如权利要求1所述的UI自动化测试的方法,其特征在于:步骤S1中,
3.如权利要求1所述的UI自动化测试的方法,其特征在于:步骤S2中,main函数根据测试范围,通过python动态生成代码方式生成一条条的可执行用例,该可执行用例即为用例可执行脚本。
4.如权利要求1所述的UI自动化测试的方法,其特征在于:步骤S3具体包括以下子步骤:
5.如权利要求4所述的UI自动化测试的方法,其特征在于:所述步骤S35还包括以下子步骤:
6.如权利要求5所述的UI自动化测试的方法,其特征在于:步骤S4中,所述步骤S3的结果集,是指有效的相似度数值A和坐标(x,y),以及无效的相似度数值A和坐标(x,y);
7.如权利要求6所述的UI自动化测试的方法,其特征在于:步骤S6中,所述项目测试报告,将BeautifulReport组件缓存空间的数据解读为相关人员可读的HTML形式的静态页面。
【技术特征摘要】
1.一种ui自动化测试的方法,其特征在于:包括以下步骤;
2.如权利要求1所述的ui自动化测试的方法,其特征在于:步骤s1中,
3.如权利要求1所述的ui自动化测试的方法,其特征在于:步骤s2中,main函数根据测试范围,通过python动态生成代码方式生成一条条的可执行用例,该可执行用例即为用例可执行脚本。
4.如权利要求1所述的ui自动化测试的方法,其特征在于:步骤s3具体包括以下子步骤:
5.如权利...
【专利技术属性】
技术研发人员:郑毅,
申请(专利权)人:鱼快创领智能科技南京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。