发明内容
本发明的目的是提供一种自动化测试方法及移动云测试***,解决上述的问题。
为解决上述问题,本发明实施例提供一种自动化测试方法,包括以下步骤:
获取已授权的在线移动设备列表、待测试应用软件及待测试应用软件的自动化测试关键字表单;
在选中的若干在线移动设备列表中的移动设备上安装并启动该应用软件后,获取应用软件首页的所有元素存储在容器中,并将该容器置为当前容器,创建根节点;
在当前容器中,选择符合元素规则的一个有效元素或一组有效元素,生成自动化执行指令;
获取移动设备执行自动化执行指令后的当前页面的所有元素,将页面元素与当前容器内元素和已有容器内元素进行比对,确定是否为相似页面;
若为不相似页面时,创建新的容器存储该页面的所有元素,并置为新的当前容器,新增子节点;
再选取当前容器中下一有效元素,生成自动化执行指令,继续执行相似判断,直至当前容器中的有效元素均已执行;
选取上一级容器以上述方式执行相似判断,直至所有容器中的有效元素都执行完成;
根据所有执行节点轨迹及执行结果进行分析,生成测试报告。
作为一种实施方式,所述获取已授权的在线移动设备列表,包括以下步骤:
当检测到移动设备连接或已连接的移动设备状态发生变更时,获取连接信息;
整合所有的移动设备的连接信息,根据用户权限将该用户可用的在线移动设备筛选出来生成当前用户可用的在线移动设备列表。
作为一种实施方式,所述在当前容器中,选择符合元素规则的一个有效元素或一组有效元素,生成自动化执行指令,包括以下步骤:
在当前容器中,选择一个元素或一组元素,将选择的元素与元素规则进行匹配;
若匹配成功,则生成自动化执行指令;
若匹配不成功,则按容器中元素顺序,选择第一个元素生成自动化执行指令。
作为一种实施方式,所述获取移动设备执行自动化执行指令后的当前页面的所有元素,与当前容器内元素和已有容器进行比对,确定是否为相似页面,包括以下步骤:
当移动设备执行自动化执行指令后,将当前容器中生成所述自动化执行指令的元素标记为已执行;
再次获取待测试应用软件的当前页面的所有元素,将获取的页面元素与当前容器的元素进行比对,判断是否为相同或相似页面;
若与当前容器不相同或不相似,再判断是否与过往已存储的容器为相同或相似页面,若与过往容器仍不相同,则新建容器存储该当前页面元素,并将新建容器设置为当前容器;若与过往容器相同或相似,将该过往容器设置为当前容器,并在上一节点下新增子节点,将新增子节点关联当前容器;
若与当前容器相同或相似,则更新当前容器中的该元素为无效元素。
作为一种实施方式,所述再选取当前容器中下一有效元素,生成自动化执行指令,继续执行相似判断,直至当前容器中的有效元素均已执行;选取上一级容器以上述方式执行相似判断,直至所有容器中的有效元素都执行完成,还包括以下步骤:
每执行完一次自动化执行指令,确认当前容器后,继续在当前容器中选择一个未执行过的元素,重复之前的步骤;
直到当前容器中的元素都已执行,返回到上一页面,定位该页面的容器,继续重复之前的步骤,直到所有容器中的元素都已执行。
作为一种实施方式,所述根据所有执行节点轨迹及执行结果进行分析,生成测试报告,包括以下步骤:
按所有执行节点轨迹分析整理出节点间关系、对应页面、所执行的页面元素及测试日志生成测试报告;
同时,输出自动化执行脚本。
本发明实施例还提供一种移动云测试***,包括管理平台、联网设备库和智能自动化测试平台,所述管理平台用于管理测试任务、待测应用软件及整合若干移动设备的连接信息,管理平台包括联网设备整合单元,联网设备库包括设备监控单元、设备通信单元和自动化执行单元,所述智能自动化测试平台包括自动化设置单元、自动化测试处理单元和CAT发送接收单元;
其中,所述设备监控单元,用于实时检测连接至联网设备库的移动设备,并将若干已连接的移动设备的连接信息上传至联网设备整合单元;
所述联网设备整合单元,用于接收所有所述设备监控单元发送的连接信息,将若干连接信息整合生成在线移动设备列表发送至自动化执行单元;
所述自动化设置单元,用于设置待测试应用软件的相关关键字表单和提供元素规则库;
所述自动化测试处理单元,用于响应所述自动化设置单元的关键字表单,根据元素规则库的规则生成启动应用指令和自动化执行指令,并接收所述CAT发送接收单元发送的移动设备测试指令执行后的信息,根据执行后的信息分析生成测试报告;
所述设备通信单元,用于接收启动应用指令和自动化执行指令交给自动化执行单元,并将自动化执行单元返回的信息发送给CAT发送接收单元;
所述自动化执行单元,用于控制移动设备执行指令对应的操作,当接收到启动应用指令时,控制在线移动设备列表中的移动设备安装并启动待测试的应用软件,当接收到自动化执行指令时,驱动移动设备执行指令,并获取移动设备执行后的相关结果信息。
作为一种实施方式,所述自动化测试处理单元包括页面元素采集器、相似度匹配模块、用例树模块、元素容器模块和检测判断模块;
其中,所述页面元素采集器,用于获取待测试应用软件启动后的首页的所有元素和获取待测试应用软件执行自动化测试指令后的页面的所有元素;
所述相似度匹配模块,用于接收所述页面元素采集器获取的首页元素和页面元素,当接收到首页元素时,将首页元素与关键字表单比对判断启动的应用软件与自动化设置单元的关键字表单匹配,当接收到页面元素时,将获取的页面元素与当前容器的元素进行比对判断是否为相同或相似页面,此外,在页面元素与当前容器的元素匹配后将页面元素与过往容器进行匹配;
所述用例树模块,用于根据所述相似度匹配模块的匹配结果记录自动化测试执行轨迹,当首页元素与关键字表单匹配成功后,创建本次执行用例树根节点,当页面元素与当前容器及过往容器的元素匹配后,新增子节点;
所述元素容器模块,用于建立容器存储页面元素、元素执行状态,并标记元素和节点关联;
所述检测判断模块,用于检测所述元素容器模块关联后当前容器是否还有未标记节点的元素和在所有元素标记节点后判断当前容器是否为标记根节点的容器;
所述自动化测试处理单元,还用于根据应用当前容器中元素状态、元素规则及所述检测判断模块的判断结果,生成下一步自动化测试执行指令。
作为一种实施方式,还包括前端入口和存储平台,所述前端入口包括用户单元、应用软件上传单元,所述管理平台包括用户管理单元、应用软件权限单元;
其中,所述用户单元,用于有应用软件测试需求的用户登入;
所述用户管理单元,用于所述用户单元登入的用户权限设置;
所述应用软件上传单元,用于通过用户权限设置后的用户将待测试的应用软件上传;
所述应用软件权限单元,用于所述应用软件上传单元上传的应用软件权限的和状态设置,及应用软件的信息显示;
所述存储平台,用于对所述应用软件上传单元上传的应用软件进行有序化存储,并将应用软件存储地址反馈至应用软件权限单元。
作为一种实施方式,所述前端入口还包括移动设备列表单元、发布测试任务单元、云众测线下流程单元、报告中心单元,所述管理平台还包括设备中心单元、联网设备库的服务端和任务中心单元,联网设备库还包括授权服务单元、设备信息存储单元,所述智能自动化测试平台还包括报告工厂单元;
其中,所述授权服务单元,用于对连接的移动设备进行授权/连接服务,生成验证成功信号;
所述设备监控单元,用于响应所述授权服务单元生成的验证成功信号监控所有连接的移动设备的状态情况;
所述设备信息存储单元,用于响应所述授权服务单元生成的验证成功信号将移动设备的设备信息存储在所述联网设备库的Cache/DB上,并由所述设备监控单元实时更新给所述联网设备整合单元进行实时整合生成在线移动设备列表,所述联网设备整合单元将在线移动设备列表发送至设备中心单元;
所述设备中心单元,用于接收所述联网设备整合单元的在线移动设备列表按权限筛选供当前用户使用的在线移动设备列表并在所述移动设备列表单元中显示;
所述发布测试任务单元,用于对所述设备中心单元展示的移动设备列表中的移动设备选择待检测应用软件的测试类型和测试任务;
所述任务中心单元,用于根据测试任务的信息,按测试任务分类发送众测任务至所述云众测线下流程单元或发送自动化测试任务至所述自动化设置单元;
所述云众测线下流程单元,用于将所述众测任务推送给***内的其它用户及对外展示,众测任务执行后将若干用户提交的测试反馈生成众测报告;
所述报告工厂单元,用于接收所述自动化测试处理单元的测试报告,将若干移动设备的测试报告汇总后发送至报告中心单元;
所述报告中心单元,用于接收所述云众测线下流程单元的众测报告和所述报告工厂的测试报告。
本发明相比于现有技术的有益效果在于:解决了移动设备远程控制等相关技术,用户手机不需要安装任何应用,只需要开启USB数据连接,连接安装有联网设备库的客户端电脑或私有服务器后,即可对手机进行远程控制,实现真机云测试。企业私有云服务,通过***权限及联网设备库的网络接入控制,可以对企业设备进行私有化保护。任何个人的或企业的测试设备,授权后,即可显示在联网设备库中,用户即可以共享该设备获取相应回报,也可以租用其他联网可用设备进行测试,有效实现联网设备库的设备资源整合,节省成本,支持企业或个人解决移动设备紧缺、测试流程管理、智能自动化测试,极大地减少了测试***化搭建时间。本发明的自动化测试方法可在线编辑关键字表单,通过匹配关键字规则,实现智能深度遍历测试,突破了传统先录制调试再回放的自动化测试模式,而是根据智能规则遍历功能,生成用例树结构及执行结果。用户可以根据用例树结构进行二次修改,整理出有效功能自动化用例,也可修改智能规则,提高下次遍历的有效性。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。
如图1所示,一种自动化测试方法,具体包括以下步骤:
S101:获取已授权的在线移动设备列表、待测试应用软件及待测试应用软件的自动化测试关键字表单,关键字表单包括待测试应用软件首页的关键字元素和首页上的一级菜单的关键字元素,其中,在本实施中,应用软件的首页是指启动应用软件后,去除引导页及广告等非功能性页面后,进入主体功能的第一个页面,该步骤用以确定应用软件的测试起点;
步骤101中,获取已授权的在线移动设备列表包括以下步骤:
S201:当检测到移动设备连接或已连接的移动设备状态发生变更时,获取连接信息;
S202:整合所有的移动设备的连接信息,根据用户权限将该用户可用的在线移动设备筛选出来生成当前用户可用的在线移动设备列表。
S102:在选中的若干在线移动设备列表中的移动设备上安装该应用软件并启动;
S103:应用软件启动后获取首页所有元素;
S104:将获取的首页元素与关键字表单进行匹配,若不匹配,则中断结束,重新设置关键字表单;
S105:若匹配成功,则创建本次执行用例树根节点,并存储页面元素到一个页面容器中,将页面容器置位当前容器;
S106:在当前容器中,调用元素规则库,根据定义的元素规则,选择符合规则的一个有效元素或一组有效元素,生成自动化执行指令;
步骤106还包括:
S301:在当前容器中,若选择的元素与元素规则不匹配,若匹配不成功,则按容器中元素顺序,选择第一个元素生成自动化执行指令。
S107:根据自动化执行指令使移动设备执行测试任务,获取移动设备执行指令操作后当前页面的所有元素,并将获取的页面元素与当前容器的元素和已有容器内元素进行比对判断是否为相同或相似页面,其中,所有元素为页面元素的XML,比对内容包括XML结构、页面title及元素信息等;
S108:若获取的页面元素与当前容器元素为不同页面,则判断是否与过往容器页面相同或相似;
S109:若获取的页面元素与过往容器元素为相同或相似页面,则新增子节点并标记元素关联,并将该过往容器置为当前容器,完成该步骤后执行步骤S112;
S110:若获取的页面元素与过往容器元素为不同页面,则新增子节点,并标记当前容器中该元素已关联了该子节点,同时,存储当前页面元素到一个新的页面容器中,并将新容器标记为当前容器,完成该步骤后返回至步骤106;
S111:若获取的页面元素与当前容器元素为相同或相似页面,则标记当前容器中的该元素为无效元素;
S112:判断当前容器是否还有未标记节点的有效元素,若是则返回至步骤106;
S113:若不存在未标记节点的有效元素,则判断当前容器是否为标记根节点的容器,若否,则返回上一级容器,将该上一级容器设置为当前容器,返回至步骤S112;
S114:若当前容器是标记为根节点的容器,则结束本次测试,按所有执行节点轨迹分析整理出节点间关系、对应页面、所执行的页面元素及测试日志生成测试报告;同时,输出自动化执行脚本。
如图2至3所示,一种移动云测试***,包括前端入口1、管理平台2、存储平台3、联网设备库4和智能自动化测试平台5,其中,前端入口1包括用户单元11、应用软件上传单元12、移动设备列表单元13、发布测试任务单元14、云众测线下流程单元15、报告中心单元16;管理平台2包括用户管理单元21、应用软件权限单元22、设备中心单元23、联网设备整合单元24、任务中心单元25;联网设备库4还包括授权服务单元41、设备监控单元42、设备通信单元43、自动化执行单元44(即Appium);智能自动化测试平台5包括自动化设置单元53、自动化测试处理单元52、CAT发送接收单元51,自动化设置单元53包括首页关键字模块、菜单关键字模块以及元素规则库。
工作流程如下:用户通过用户单元11登入移动云测试***,用户管理单元21确认身份权限后,用户可通过应用软件上传单元12上传待检测的应用软件,应用软件权限单元22对上传的应用软件进行权限设置,设置权限后的应用软件会存储至存储平台3会并生成对应的存储地址,并将该存储地址信息发送至任务中心单元25。同时个人或企业(将移动设备资源共享的群体)将移动设备通过数据线连接至可连通联网设备库4的电脑或服务器上,通过授权服务单元41对连接的移动设备进行授权连接服务,此时,即可将连接的移动设备接入到设备中心单元23。对授权后的移动设备则开启设备监控单元42、设备通信单元43。设备监控单元42实时检测连接入网的移动设备及其设备连接情况,联网设备整合单元24将所有连接入网移动设备的设备信息整合后发送至设备中心单元23。***会按用户权限从设备中心中筛选出符合当前用户的可用移动设备,在移动设备列表单元13中进行展示。然后,用户在发布测试任务单元14发布针对上传的待测试应用软件的测试任务和选择测试类型,任务中心单元25接收并根据发布测试任务单元14的信息,推送众测任务至云众测线下流程单元15给可见用户或发布自动化测试任务至智能自动化测试平台5的自动设置单元。自动化设置单元53在接收到自动化测试任务后,用户在自动化设置单元53中填写关键字表单及选择当前用户的可用移动设备列表中的若干用于测试的移动设备,自动化测试处理单元52在接收到关键字表单后开始进行自动化测试,生成自动化执行指令,CAT发送接收单元51将自动化执行指令给联网设备库4的设备通信单元43,设备通信单元43将自动化执行指令发送至自动化执行单元44执行测试任务,测试任务完后将数据通过设备通信单元43和CAT发送接收单元51发送至自动化测试处理单元52,自动化测试处理单元52会根据当前返回结果,生成下一指令,直至自动化遍历完成,再分析测试数据生成测试报告,移动设备列单中的每一移动设备均会完成测试任务并生成测试报告,若干测试报告经报告工厂单元54(对执行日志进行归类分析统计,按html格式输出,生成高阅读性测试报告)汇总后在报告中心单元16进行展示。如果任务中心单元25发布的是众测任务,则会将众测任务发送至云众测线下流程单元15推送给***内的其他用户,由其它用户来执行线下众测流程,并反馈测试报告到报告中心。
除上述之外,联网设备库4集成了轻量级开发环境工具SDKabd命令和Xcode,SDKabd命令和Xcode用于获取IOS或Android的移动设备的***信息。管理平台2还包括联网设备库4的服务端、设备信息存储单元和协议翻译单元,设备信息存储单元用于响应授权服务单元41生成的验证成功信号将移动设备的设备信息存储在Cache/DB上,协议翻译单元用于将自定义格式协议内容翻译成Appium协议,Appium协议供自动化执行单元44识别。
移动设备授权的具体步骤如下:当移动设备通过数据线连接至联网数据库时,开启授权服务,此时,发送TCP/IP协议给服务端,使已连接移动设备与联网数据库建立双向通道。TCP/IP协议包含的信息为当前联网设备库4的session(计算机语言,称为“会话控制”),服务端接收session通过验证后开启设备监控服务。
本发明的移动云测试***针对自动化测试方法在自动化测试处理单元52内设置有以下模块:应用安装启动模块521、自动化操作模块522、页面元素采集器523、用例树模块525、元素容器模块526、相似度匹配模块524、检测判断模块527。自动化设置单元53包括首页关键字模块、菜单关键字模块和元素规则库,其中,首页关键字模块用于进入应用软件首页的操作步骤及确定应用软件首页的关键字元素;菜单关键字模块用于确定首页上的一级菜单的关键字,确定应用软件自动化的测试起点;元素规则库包括若干元素的处理规则,用于判断页面元素的选择及操作标准。
本发明的自动化测试方法在本发明的移动云测试***中的工作流程如下:从应用软件上传单元12获取用户上传的待测试应用软件,从移动设备列表获取资源共享的可用在线移动设备列表,在自动化设置单元53中设置待测试应用软件的关键字表单,其中,首页关键字模块设置待测试应用软件首页的关键字元素,菜单关键字模块设置首页上的一级菜单的关键字元素。应用安装启动模块521响应测试任务生成启动应用指令,CAT发生接收模块将指令发送给选中的移动设备的客户端的设备通信单元43,自动化执行单元44响应启动应用指令在若干选中的移动设备上安装并启动该应用软件。通过页面元素采集器523获取首页所有元素,相似度匹配模块524在接收到首页的所有元素后,将获取的首页元素与关键字表单进行匹配,若不匹配,则中断结束,重新设置关键字表单;若匹配成功,则通过用例树模块525创建本次执行用例树根节点,并存储页面元素到元素容器中的一个页面容器当中,将该页面容器置为当前容器。在当前容器中,调用元素规则库,根据定义的元素规则,选择符合规则的一个有效元素或一组有效元素,通过自动化操作模块522生成自动化执行指令,设备通信单元43或自动化执行单元44响应自动化执行指令后驱动移动设备执行测试任务,测试完成后,通过页面元素采集器523获取当前页面的所有元素,通过相似度匹配模块524将获取的页面元素与当前容器的元素进行比对判断是否为相同或相似页面,若获取的页面元素与当前容器元素为不同页面,则判断是否与过往容器页面相同或相似,若获取的页面元素与过往容器元素为相同或相似页面,则通过用例树模块525新增子节点并标记元素关联,并将该过往容器置位当前容器,完成该步骤后执行判断是否还有为标记节点的元素,若获取元素与过往容器元素为不同页面,则通过用例树模块525新增子节点,并标记当前容器中该元素已关联了子节点,同时,存储当前页面元素到元素容器模块526中的一个新的页面容器当中,并将新容器标记为当前容器,完成该步骤后重新调用元素规则库;若获取的页面元素与当前容器元素为相同或相似页面,则标记当前容器中的该元素为无效元素。完成上述步骤后,通过检测判断模块527判断是否当前容器还有未标记节点的元素,若是则重新调用元素规则库,再选取当前容器中下一有效元素,生成自动化执行指令,继续执行相似判断,直至当前容器中的有效元素均已执行;若否,则通过检测判断模块527判断当前容器是否为标记根节点的容器,若当前容器不是标记根节点的容器,则返回到用例树模块525中的上一级容器,重新驱动移动设备执行上一级容器中每个有效元素的测试任务,直至用例树模块525中所有容器的有效元素都执行完成;若当前容器为标记根节点的容器,则结束本次测试,按所有执行节点轨迹分析整理出节点间关系、对应页面、所执行的页面元素及测试日志生成测试报告,同时,输出自动化执行脚本。
本发明相比于现有技术的有益效果在于:解决了移动设备远程控制等相关技术,用户手机不需要安装任何应用,只需要开启USB数据连接,连接安装有联网设备库4的客户端电脑或私有服务器后,即可对手机进行远程控制,实现真机云测试。企业私有云服务,通过***权限及联网设备库4的网络接入控制,可以对企业设备进行私有化保护。任何个人的或企业的测试设备,授权后,即可显示在联网设备库4中,用户即可以共享该设备获取相应回报,也可以租用其他联网可用设备进行测试,有效实现联网设备库4的设备资源整合,节省成本,支持企业或个人解决移动设备紧缺、测试流程管理、智能自动化测试,极大地减少了测试***化搭建时间。本发明的自动化测试方法可在线编辑关键字表单,通过匹配关键字规则,实现智能深度遍历测试,突破了传统先录制调试再回放的自动化测试模式,而是根据智能规则遍历功能,生成用例树结构及执行结果。用户可以根据用例树结构进行二次修改,整理出有效功能自动化用例,也可修改智能规则,提高下次遍历的有效性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。