一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自动检测组装产品中系统权限页面正确性的方法及其系统与流程

2022-02-20 05:22:24 来源:中国专利 TAG:


1.本发明涉及计算机通讯技术领域,特别是一种自动检测组装产品中系统权限页面正确性的方法及其系统。


背景技术:

2.应《关于开展app违法违规收集使用个人信息专项治理的公告》要求,现有大部分公司都会在拼装门户app新增系统权限页面。通过系统权限页面将应用申请的高敏感权限信息展示告知给用户,并提供用户进行自主开关权限的入口。
3.另外,为了程序之间各个模块之间的解耦以及高效的开发应用,各大公司推出相应的应用工厂的框架,原各个模块定义为独立的工作的组件,生产一个应用时,选择对应的组件,根据应用工厂的框架,即可生产出一个完整的应用,像生产汽车似的。
4.由于组装产品涉及的业务组件众多且零散,各系统权限由各个组件在各自的业务组件里各自声明,最后通过拼装后生成该页面。若拼装后,出现某业务组件声明了未使用的敏感权限,将导致系统权限页面中展示的敏感权限与实际使用不符之类的bug。出现问题后,沟通定位成本较高。现有的当前环境下,该类问题主要是手工测试及跨部门沟通定位为主,流程,请参阅图1所示。图1中的流程存在如下缺陷:1、人力投入较多,效率低下;2、跨部门组处沟通耗时较多;3、出现异常后增加了版本的往返,不利于版本的快速发布。基于上述情况,本专利研发了一种自动检测组装产品中系统权限页面正确性的方法及其系统。


技术实现要素:

5.为克服上述问题,本发明的目的是提供一种自动检测组装产品中系统权限页面正确性的方法,实现了全流程的自动检测输出定位结果,可以代替人工实现测试遍历与问题定位,提高测试效率,减少版本往返。
6.本发明采用以下方案实现:一种自动检测组装产品中系统权限页面正确性的方法,所述方法包括如下步骤:
7.步骤s1、准备组件权限声明规范,即组件按工厂规范提交组件声明及业务组件声明;同时,在app构建过程中,将各类过程文件进行输出;
8.步骤s2、将产品中所有需要获取的手机系统权限的权限组都列出,并形成app需要展示的敏感权限列表,该敏感权限列表包括:序号、权限组、权限字段、权限作用;将系统权限页面的敏感权限与应用实际权限进行校验是否一致,若一致则校验通过,构建成功输出app进入后续的产品测试发布环节;若校验不一致,则返回构建失败,输出权限差异数据;
9.步骤s3、通过所述差异数据及构建过程中各类过程文件,来定位出引入异常的组件并输出到构建日志中。
10.进一步的,所述各类过程文件包括但不限于:app中所有业务组件声明文件信息xmls_old,app中所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件aarinfo,app中的androidmanifest文件,系统权限页面展示的权限信息permission_
config_data。
11.进一步的,所述步骤2进一步具体为:对构建app过程中输出的androidmanifest.xml文件进行解析,并获取manifest属性下的所有uses-permission android:name对应的参数值,归类成集合m;权限扫描完成后,将获取到的集合m和集合a进行相交,该集合a为所述敏感权限列表的数据,获得当前应用所使用到的敏感权限集合md,即集合md=集合m∩集合a;将集合md到敏感权限列表中查询该应用所使用的权限组,获得权限组集合g;解析系统权限页面,获得该应用展示的系统权限页面中所展示的权限组集合s;最后,将应用使用的权限组集合g与页面展示的权限组集合s做比较,得到最后的比较结果并输出;比较结果为:权限组集合g=权限组集合s,则自动检测通过,输出app并刷新前端状态,输出空集d;权限组集合g》权限组集合s,则自动检测不通过,输出差异权限组集合d;权限组集合g《权限组集合s,则自动检测不通过,输出差异权限组集合d。
12.进一步的,所述步骤s3进一步具体为:通过将检测不通过获得的差异权限组集合d,转为敏感权限集,然后在到构建中输出的该应用所有业务组件声明文件信息xmls_old与所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件中去查询,从而确认引入异常的业务组件,并输出到日志中。
13.进一步的,所述权限组集合s《权限组集合g,则表明系统权限页面展示的权限少于应用实际使用权限;将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中有组件声明了该权限,则说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,则在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中无该权限信息,则说明是业务组件声明的权限缺失,从文件aarinfo中查询引入该权限的移动组件名称及版本信息,再通过移动组件名称及版本信息从xmls_old中获取该组件的name及display信息,通过构建日志输出通知产品方。
14.进一步的,所述权限组集合s》权限组集合g,则表明系统权限页面展示的权限多于应用实际使用权限,将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中无该信息,则说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,则在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中有组件声明了该权限,则说明是业务组件声明有误,从xmls_old中获取该组件的name及display信息,通过构建日志输出通知产品方。
15.本发明还提供了一种自动检测组装产品中系统权限页面正确性的系统,所述系统包括数据准备模块、校验模块、以及结果定位模块;
16.所述数据准备模块,用于准备组件权限声明规范,即组件按工厂规范提交组件声明及业务组件声明;同时,在app构建过程中,将各类过程文件进行输出;
17.所述校验模块,用于将产品中所有需要获取的手机系统权限的权限组都列出,并形成app需要展示的敏感权限列表,该敏感权限列表包括:序号、权限组、权限字段、权限作用;将系统权限页面的敏感权限与应用实际权限进行校验是否一致,若一致则校验通过,构建成功输出app进入后续的产品测试发布环节;若校验不一致,则返回构建失败,输出权限差异数据;
18.所述结果定位模块,用于通过所述差异数据及构建过程中各类过程文件,来定位出引入异常的组件并输出到构建日志中。
19.进一步的,所述各类过程文件包括但不限于:app中所有业务组件声明文件信息xmls_old,app中所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件aarinfo,app中的androidmanifest文件,系统权限页面展示的权限信息permission_config_data。
20.进一步的,所述校验模块进一步具体为:对构建app过程中输出的androidmanifest.xml文件进行解析,并获取manifest属性下的所有uses-permission android:name对应的参数值,归类成集合m;权限扫描完成后,将获取到的集合m和集合a进行相交,该集合a为所述敏感权限列表的数据,获得当前应用所使用到的敏感权限集合md,即集合md=集合m∩集合a;将集合md到敏感权限列表中查询该应用所使用的权限组,获得权限组集合g;解析系统权限页面,获得该应用展示的系统权限页面中所展示的权限组集合s;最后,将应用使用的权限组集合g与页面展示的权限组集合s做比较,得到最后的比较结果并输出;比较结果为:权限组集合g=权限组集合s,则自动检测通过,输出app并刷新前端状态,输出空集d;权限组集合g》权限组集合s,则自动检测不通过,输出差异权限组集合d;权限组集合g《权限组集合s,则自动检测不通过,输出差异权限组集合d。
21.进一步的,所述结果定位模块进一步具体为:通过将检测不通过获得的差异权限组集合d,转为敏感权限集,然后在到构建中输出的该应用所有业务组件声明文件信息xmls_old与所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件中去查询,从而确认引入异常的业务组件,并输出到日志中。
22.进一步的,所述权限组集合s《权限组集合g,则表明系统权限页面展示的权限少于应用实际使用权限;将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中有组件声明了该权限,则说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,则在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中无该权限信息,则说明是业务组件声明的权限缺失,从文件aarinfo中查询引入该权限的移动组件名称及版本信息,再通过移动组件名称及版本信息从xmls_old中获取该组件的name及display信息,通过构建日志输出通知产品方。
23.进一步的,所述权限组集合s》权限组集合g,则表明系统权限页面展示的权限多于应用实际使用权限,将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中无该信息,则说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,则在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中有组件声明了该权限,则说明是业务组件声明有误,从xmls_old中获取该组件的name及display信息,通过构建日志输出通知产品方。
24.本发明的有益效果在于:1.该自动检测方法通过自动检查的方式,减少了该项内容的测试的人员投入。2.自动检测速度比手工测试快,减少了测试时间投入。3.该检查方案采用自动定位的方式,将引入异常的业务组件信息直接通过构建日志通知产品方,减少了配置组人员、qa、组件开发等多方沟通定位的时间投入。4.该自动检测方案是在平台给出app前就进行了检测,避免了测试版本因为此类问题引入的版本往返。
附图说明
25.图1是本发明现有的手工测试及跨部门沟通定位异常的组件流程图。
26.图2是本发明的自动测试及跨部门沟通定位异常的组件流程图。
27.图3是本发明的方法流程示意图。
28.图4是本发明的组件权限校验的流程示意图。
29.图5是本发明系统权限页面展示的权限少于应用使用的权限时进行校验操作流程示意图。
30.图6是本发明系统权限页面展示的权限多于应用使用的权限时进行校验操作流程示意图。
31.图7是本发明的系统原理框图。
具体实施方式
32.下面结合附图对本发明做进一步说明。
33.请参阅图2至图6所示,本发明的一种自动检测组装产品中系统权限页面正确性的方法,所述方法包括如下步骤:
34.步骤s1、准备组件权限声明规范,即组件按工厂规范提交组件声明及业务组件声明;同时,在app构建过程中,将各类过程文件进行输出;
35.步骤s2、将产品中所有需要获取的手机系统权限的权限组都列出,并形成app需要展示的敏感权限列表,该敏感权限列表包括:序号、权限组、权限字段、权限作用;将系统权限页面的敏感权限与应用实际权限进行校验是否一致,若一致则校验通过,构建成功输出app进入后续的产品测试发布环节;若校验不一致,则返回构建失败,输出权限差异数据;
36.步骤s3、通过所述差异数据及构建过程中各类过程文件,来定位出引入异常的组件并输出到构建日志中。
37.下面结合一具体实施例对本发明作进一步说明:
38.如图2和图3所示,该方法为:1、准备组件权限声明规范,前期sdp上组件按工厂规范提交组件声明及业务组件。同时,拼装门户构建过程中文件输出,主要包括:
39.a.app中所有业务组件声明文件信息xmls_old;
40.b.app中所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件aarinfo;
41.c.app中的androidmanifest文件;
42.d.系统权限页面展示的权限信息permission_config_data。
43.2、app系统权限页面,是根据法务提供的高敏感权限列表,将产品中所有需要获取的手机系统权限的权限组都列出来,当前app需要展示的高敏感权限列表如下表r:
44.表r
45.[0046][0047]
如图4所示,对平台构建apk过程中输出的androidmanifest.xml文件进行解析,并获取manifest属性下的所有uses-permission android:name对应的参数值,归类成集合m;
权限扫描完成后,将获取到的集合m和敏感权限集合a(即集合a:表r中权限列数据)相交,获得当前应用所使用到的高敏感权限集合md,及集合md=集合m∩集合a;而后拿获取到的集合md到表r中查询该应用所使用的权限组,获得权限组集合g;解析系统权限页面,获得该应用展示的系统权限页面中所展示的权限组集合s;最后,将应用使用的权限组集合g与页面展示的权限组集合s做比较,得到最后的比较结果并输出。
[0048]
对比结果输出如下:
[0049]
集合g=集合s,则自动检测通过,输出app并刷新前端状态,输出空集d。
[0050]
集合g》集合s,则自动检测不通过,输出差异权限组集合d,并进入结果定位操作。
[0051]
集合g《集合s,则自动检测不通过,输出差异权限组集合d,并进入结果定位操作。
[0052]
结果定位操作主要工作是,通过将检测不通过获得的差异数据权限组集合d,转化成高敏感权限集,然后在到构建中输出的该应用所有业务组件声明文件信息xmls_old与所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件中去查询。从而确认引入异常的业务组件,并输出到日志中。那么配置组人员就可以通过日志中提示的异常组件信息,去找对应的组件开发出来。
[0053]
其中,解析系统权限页面,获得该应用展示的系统权限页面中所展示的权限组集合s,该权限组集合s获取如下:
[0054]
permission_config_data文件主要存放的是app系统权限页面中的一些展示说明信息,主要包含信息安全说明informationsecurity、权限设置说明permissionsettingexplain、权限说明intro信息及权限详情detail信息。因此,要获取当前app系统权限页面所展示的权限组集合s,只要通过解析系统权限页面信息的permission_config_data文件,来获取信息安全说明informationsecurity、权限设置说明permissionsettingexplain、权限说明intro信息及权限详情detail信息;若文件说明中包含xx_intro/xx_detail,则说明该应用的系统权限页面展示包含xx权限。即权限组集合s包括序号、权限组、intro信息、detail信息;详细参见如下表1:
[0055]
表1权限组与permission_config_data文件中的xx_intro/xx_detail对应关系表
[0056]
序号权限组introdetail1calendarcalendar_introcalendar_detail2cameracamera_introcamera_detail3contactscontacts_introcontacts_detail4locationlocation_introlocation_detail5microphonemicrophone_intromicrophone_detail6phonephone_introphone_detail7sensorssensors_introsensors_detail8smssms_introsms_detail9storagestorage_introstorage_detail
[0057]
如图5所示,所述权限组集合s《权限组集合g,则表明系统权限页面展示的权限少于应用实际使用权限;将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中有组件声明了该权限,就说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,那么就在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现
xmls_old中无该权限信息,就说明是业务组件声明的权限缺失,那么就从aarinfo中查询引入该权限的移动组件名称及版本信息,再通过aar信息(移动组件名称及版本信息)从xmls_old中获取该组件的name及display等信息,通过构建日志输出通知产品方。
[0058]
如图6所示,所述权限组集合s》权限组集合g,则表明系统权限页面展示的权限多于应用实际使用权限,将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中无该信息,就说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,那么就在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中有组件声明了改权限,就说明是业务组件声明有误,那么就从xmls_old中获取改组件的name及display等信息,通过构建日志输出通知产品方。
[0059]
请参阅图7所示,本发明还提供了一种自动检测组装产品中系统权限页面正确性的系统,所述系统包括数据准备模块、校验模块、以及结果定位模块;
[0060]
所述数据准备模块,用于准备组件权限声明规范,即组件按工厂规范提交组件声明及业务组件声明;同时,在app构建过程中,将各类过程文件进行输出;所述各类过程文件包括但不限于:app中所有业务组件声明文件信息xmls_old,app中所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件aarinfo,app中的androidmanifest文件,系统权限页面展示的权限信息permission_config_data。
[0061]
所述校验模块,用于将产品中所有需要获取的手机系统权限的权限组都列出,并形成app需要展示的敏感权限列表,该敏感权限列表包括:序号、权限组、权限字段、权限作用;将系统权限页面的敏感权限与应用实际权限进行校验是否一致,若一致则校验通过,构建成功输出app进入后续的产品测试发布环节;若校验不一致,则返回构建失败,输出权限差异数据;
[0062]
所述结果定位模块,用于通过所述差异数据及构建过程中各类过程文件,来定位出引入异常的组件并输出到构建日志中。
[0063]
其中,所述校验模块进一步具体为:对构建app过程中输出的androidmanifest.xml文件进行解析,并获取manifest属性下的所有uses-permission android:name对应的参数值,归类成集合m;权限扫描完成后,将获取到的集合m和集合a进行相交,该集合a为所述敏感权限列表的数据,获得当前应用所使用到的敏感权限集合md,即集合md=集合m∩集合a;将集合md到敏感权限列表中查询该应用所使用的权限组,获得权限组集合g;解析系统权限页面,获得该应用展示的系统权限页面中所展示的权限组集合s;最后,将应用使用的权限组集合g与页面展示的权限组集合s做比较,得到最后的比较结果并输出;比较结果为:权限组集合g=权限组集合s,则自动检测通过,输出app并刷新前端状态,输出空集d;权限组集合g》权限组集合s,则自动检测不通过,输出差异权限组集合d;权限组集合g《权限组集合s,则自动检测不通过,输出差异权限组集合d。
[0064]
其中,解析系统权限页面,获得该应用展示的系统权限页面中所展示的权限组集合s,该权限组集合s获取如下:
[0065]
permission_config_data文件主要存放的是app系统权限页面中的一些展示说明信息,主要包含信息安全说明informationsecurity、权限设置说明permissionsettingexplain、权限说明intro信息及权限详情detail信息。因此,要获取当前app系统权限页面所展示的权限组集合s,只要通过解析系统权限页面信息的
permission_config_data文件,来获取信息安全说明informationsecurity、权限设置说明permissionsettingexplain、权限说明intro信息及权限详情detail信息;若文件说明中包含xx_intro/xx_detail,则说明该应用的系统权限页面展示包含xx权限。即权限组集合s包括序号、权限组、intro信息、detail信息;详细参见如下表2:
[0066]
表2权限组与permission_config_data文件中的xx_intro/xx_detail对应关系表
[0067]
序号权限组introdetail1calendarcalendar_introcalendar_detail2cameracamera_introcamera_detail3contactscontacts_introcontacts_detail4locationlocation_introlocation_detail5microphonemicrophone_intromicrophone_detail6phonephone_introphone_detail7sensorssensors_introsensors_detail8smssms_introsms_detail9storagestorage_introstorage_detail
[0068]
所述结果定位模块进一步具体为:通过将检测不通过获得的差异权限组集合d,转为敏感权限集,然后在到构建中输出的该应用所有业务组件声明文件信息xmls_old与所有移动组件的androidmanifest文件解析出来的移动组件与权限对照文件中去查询,从而确认引入异常的业务组件,并输出到日志中。
[0069]
另外,在本发明中,所述权限组集合s《权限组集合g,则表明系统权限页面展示的权限少于应用实际使用权限;将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中有组件声明了该权限,则说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,则在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中无该权限信息,则说明是业务组件声明的权限缺失,从文件aarinfo中查询引入该权限的移动组件名称及版本信息,再通过移动组件名称及版本信息(即arr信息)从xmls_old中获取该组件的name及display信息,通过构建日志输出通知产品方。
[0070]
所述权限组集合s》权限组集合g,则表明系统权限页面展示的权限多于应用实际使用权限,将差异权限组集合d下的权限集p去xmls_old中搜索:若发现xmls_old中无该信息,则说明是配置组成员配置应用时未去配置刷新应用权限列表,导致数据出入,则在构建日志中提示配置组人员去检查并刷新权限配置信息;若发现xmls_old中有组件声明了该权限,则说明是业务组件声明有误,从xmls_old中获取该组件的name及display信息,通过构建日志输出通知产品方。
[0071]
总之,本发明使用直接在拼装门户上引入构建后自动检测定位的方案。门户输出app前,通过系统权限页面的权限与应用实际权限的校验,若一致则校验通过,构建成功输出app进入后续的产品测试发布环节;若校验不一致,则返回构建失败。输出权限差异数据,并通过差异数据及构建过程中文件,定位出引入异常的组件并在构建日志中告知产品。该测试方法在提供测试包前,已经实现了全流程的自动检测输出定位结果,可以代替人工实现测试遍历与问题定位,可以很大一部分减少上述问题的出现,提高测试效率,减少版本往返。
[0072]
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献