一种混合开发模式下移动API的自动化测试方法及系统
文献发布时间:2023-06-29 06:30:04
技术领域
本发明属于移动应用接口测试技术领域,具体涉及一种混合开发模式下移动API的自动化测试方法及系统。
背景技术
H5指HTML5。是构建Web内容的一种语言描述方式应用。基于H5开发的轻应用比本地APP拥有更短的启动时间,更快的联网速度,而且无需下载占用存储空间,特别适合手机等移动媒体。
js是Javascript的简称,js是一种脚本语言,是不需要进行编译的,也是浏览器中的一部分,经常用在web客户端脚本语言,主要是用来给html增加动态功能。
企业级移动应用平台,往往采用原生技术与H5技术的混合开发模式,由移动应用平台为移动H5应用提供了一套完整的原生接口,并可通过js方式调用,这些原生接口为H5应用提供诸如语音、视频、图片、网络及蓝牙等手机系统原生能力,但是这些原生能力通常又受限于手机的系统、硬件及浏览器等因素,造成API存在一定的兼容性问题,因此,移动应用平台发布前往往需要对接口进行全量兼容性测试。
传统的测试方法通过开发人员手动人工编写接口调用函数,逐个输入参数或者点击交互进行接口功能验证,测试用例覆盖率低,针对同一个接口往往依赖开发人员进行边界、异常情况判断,容易缺少测试场景,并且测试效率低下、测试结果不易保存、不便于统计,再者面对需要用户交互如打开摄像头等操作,人工重复操作多、操作繁琐,对移动应用平台的快速发布带来极大障碍,因此传统的测试方法无法实现移动应用平台的高效发布。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种混合开发模式下移动API的自动化测试方法及系统,是非常有必要的。
发明内容
针对现有技术的上述测试效率低下、测试结果不易保存、不便于统计,再者面对需要用户交互如打开摄像头等操作,人工重复操作多、操作繁琐,对移动应用平台的快速发布带来极大障碍,无法实现移动应用平台的高效发布的缺陷,本发明提供一种混合开发模式下移动API的自动化测试方法及系统,以解决上述技术问题。
第一方面,本发明提供一种混合开发模式下移动API的自动化测试方法,包括如下步骤:
S1.基于H5框架开发API测试应用,并将API测试应用发布于移动应用平台;
S2.基于appium框架搭建appium测试工程,集成自动化执行脚本,生成appium客户端;
S3.appium客户端通过自动化执行脚本连接appium服务端,启动API测试应用,对移动应用平台的API接口逐个进行自动化测试。
进一步地,步骤S1具体步骤如下:
S11.获取移动应用平台调用js API接口操作场景,基于H5框架对所有API接口操作场景进行模拟生成API测试应用;
S12.将H5框架的API测试应用发布于移动门户的移动应用平台。
进一步地,步骤S2具体步骤如下:
S21.基于appium框架搭建appium测试工程;
S22.在appium测试工程集成自动化执行脚本,包括配置脚本、滑动脚本、图像脚本、异常脚本以及开启进程;
S23.启动appium测试工程,通过配置脚本根据移动应用平台的版本信息读取配置信息,根据配置信息创建appimu客户端,并建立appium客户端与自动化执行脚本的连接。
进一步地,步骤S3具体步骤如下:
S31.appium客户端通过自动化执行脚本连接appium服务端向移动终端下发指令;
S32.appium客户端通过appium服务端启动移动门户,输入获取的用户名账号和密码,完成移动应用平台自动登录;
S33.appium客户端通过appium服务端启动移动应用平台中API测试应用,自动填充接口全局环境参数信息;
S34.appium客户端通过appium服务端向移动终端下发指令执行API测试应用,对移动应用平台的API接口逐个进行自动化测试;
S35.API测试应用判断移动应用平台的API接口测试是否存在异常,并在存在异常时,对移动门户运行状态进行检测,而在移动门户出现崩溃且崩溃次数超限时,记录异常到状态数据;
S36.API测试应用读取执行结果,记录状态数据,生成测试报告。
进一步地,步骤S34具体步骤如下:
S341.API测试应用定位一个API接口;
S342.API测试应用根据配置信息判断定位API接口是否需要输入参数信息;
若是,进入步骤S343;
若否,进入步骤S344;
S343.API测试应用使用指令定位移动应用的参数输入框,输入参数;
S344.API测试应用使用指令定位API接口的执行按钮,启动测试;
S345.API测试应用判断API接口是否定位完毕;
若是,进入步骤S35;
若否,定位下一个API接口,返回步骤S342。
进一步地,步骤S343具体步骤如下:
S3431.API测试应用使用指令定位移动应用的参数输入框;
S3432.API测试应用判断参数输入框是否定位成功;
若是,进入步骤S3433;
若否,API测试应用使用指令滑动页面,返回步骤S3431;
S343.API测试应用输入参数。
进一步地,步骤S344具体步骤如下:
S3441.API测试应用使用指令定位API接口的执行按钮;
S3442.API测试应用判断API接口执行按钮定位是否成功;
若是,进入步骤S3443;
若否,API测试应用使用指令滑动页面,返回步骤S3441;
S3443.API测试应用点击API接口执行按钮。
进一步地,步骤S35具体步骤如下:
S351.API测试应用判断移动应用平台的API接口测试是否存在异常;
若是,进入步骤S352;
若否,进入步骤S36;
S352.API测试应用检测移动门户的运行状态,判断是否出现崩溃;
若是,进入步骤S353;
若否,返回步骤S32;
S353.API测试应用判断崩溃次数是否超限;
若是,记录异常到状态数据,进入步骤S36;
若否,返回步骤S32。
进一步地,步骤S36具体步骤如下:
S361.API测试应用对需要交互的API接口模拟交互操作,通过指令读取API接口的执行结果;
S362.API测试应用对执行结果进行记录分类,完成状态数据记录;
S363.API测试应用在完成所有API接口调用测试后,生成测试报告,输出成功接口信息、失败接口信息以及环境信息。
第二方面,本发明提供一种混合开发模式下移动API的自动化测试系统,包括:
API测试应用发布模块,用于基于H5框架开发API测试应用,并将API测试应用发布于移动应用平台;
appium测试工具及客户端生成模块,用于基于appium框架搭建appium测试工程,集成自动化执行脚本,生成appium客户端;
API接口自动测试模块,用于在appium客户端通过自动化执行脚本连接appium服务端,启动API测试应用,对移动应用平台的API接口逐个进行自动化测试。
进一步地,API测试应用发布模块包括:
API测试应用生成单元,用于获取移动应用平台调用js API接口操作场景,基于H5框架对所有API接口操作场景进行模拟生成API测试应用;
测试应用发布单元,用于将H5框架的API测试应用发布于移动门户的移动应用平台。
进一步地,appium测试工具及客户端生成模块包括:
appium测试工程搭建单元,用于基于appium框架搭建appium测试工程;
脚本集成单元,用于在appium测试工程集成自动化执行脚本,包括配置脚本、滑动脚本、图像脚本、异常脚本以及开启进程;
appium客户端创建单元,用于启动appium测试工程,通过配置脚本根据移动应用平台的版本信息读取配置信息,根据配置信息创建appimu客户端,并建立appium客户端与自动化执行脚本的连接。
进一步地,API接口自动测试模块包括:
指令下发单元,用于在appium客户端通过自动化执行脚本连接appium服务端向移动终端下发指令;
移动应用平台登录单元,用于在appium客户端通过appium服务端启动移动门户,输入获取的用户名账号和密码,完成移动应用平台自动登录;
测试应用启动单元,用于在appium客户端通过appium服务端启动移动应用平台中API测试应用,自动填充接口全局环境参数信息;
测试应用执行单元,用于在appium客户端通过appium服务端向移动终端下发指令执行API测试应用,对移动应用平台的API接口逐个进行自动化测试;
测试异常判断单元,用于通过API测试应用判断移动应用平台的API接口测试是否存在异常,并在存在异常时,对移动门户运行状态进行检测,而在移动门户出现崩溃且崩溃次数超限时,记录异常到状态数据;
执行结果读取及测试报告生成单元,用于通过API测试应用读取执行结果,记录状态数据,生成测试报告。
本发明的有益效果在于:
本发明提供的混合开发模式下移动API的自动化测试方法及系统,实现主动启动移动门户、登录移动门户系统以及自动填写测试参数,并模拟用户交互,处理系统异常,生成详实的测试报告内容。本发明减轻了测试人员的重复操作,自动化进行接口的交互中及自动化完成接口的流程控制和并能自动生成报表内容,且部署简单。本发明通过API测试应用,简化了appium自动化测试脚本的编写,appium主要负责启动api测试应用并执行应用上写好的测试用例;本发明采用API测试应用,模拟api调用的实际场景,且随着移动应用平台api的更新,便于灵活扩展测试用例。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明混合开发模式下移动API的自动化测试方法实施例1流程示意图。
图2是本发明混合开发模式下移动API的自动化测试方法实施例2流程示意图。
图3是本发明启动API测试应用,对移动应用平台的API接口逐个进行自动化测试流程示意图。
图4是本发明混合开发模式下移动API的自动化测试系统示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
appium 是当前移动平台上主流的自动化测试工具之一。
实施例1:
如图1所示,本发明提供一种混合开发模式下移动API的自动化测试方法,包括如下步骤:
S1.基于H5框架开发API测试应用,并将API测试应用发布于移动应用平台;
S2.基于appium框架搭建appium测试工程,集成自动化执行脚本,生成appium客户端;
S3.appium客户端通过自动化执行脚本连接appium服务端,启动API测试应用,对移动应用平台的API接口逐个进行自动化测试。appium 是当前移动平台上主流的自动化测试工具之一。
实施例2:
如图2所示,本发明提供一种混合开发模式下移动API的自动化测试方法,包括如下步骤:
S1.基于H5框架开发API测试应用,并将API测试应用发布于移动应用平台;步骤S1具体步骤如下:
S11.获取移动应用平台调用js API接口操作场景,基于H5框架对所有API接口操作场景进行模拟生成API测试应用;
S12.将H5框架的API测试应用发布于移动门户的移动应用平台;
S2.基于appium框架搭建appium测试工程,集成自动化执行脚本,生成appium客户端;步骤S2具体步骤如下:
S21.基于appium框架搭建appium测试工程;
S22.在appium测试工程集成自动化执行脚本,包括配置脚本、滑动脚本、图像脚本、异常脚本以及开启进程;
S23.启动appium测试工程,通过配置脚本根据移动应用平台的版本信息读取配置信息,根据配置信息创建appimu客户端,并建立appium客户端与自动化执行脚本的连接;配置信息包括用于创建appium客户端所需的属性信息、登录移动应用平台的账号信息、作为h5应用的测试API的接口环境和相关的参数信息等移动应用平台相关配置信息;appium客户端用于连接appium 服务端并向其发送操作命令,后续所有操作指令都依赖此客户端发送到appium 服务端;
S3.appium客户端通过自动化执行脚本连接appium服务端,启动API测试应用,对移动应用平台的API接口逐个进行自动化测试;步骤S3具体步骤如下:
S31.appium客户端通过自动化执行脚本连接appium服务端向移动终端下发指令;
S32.appium客户端通过appium服务端启动移动门户,输入获取的用户名账号和密码,完成移动应用平台自动登录;
S33.appium客户端通过appium服务端启动移动应用平台中API测试应用,自动填充接口全局环境参数信息;自动填充接口全局环境参数信息,为后续的接口调用做准备工作;
S34.appium客户端通过appium服务端向移动终端下发指令执行API测试应用,对移动应用平台的API接口逐个进行自动化测试;如图3所示,步骤S34具体步骤如下:
S341.API测试应用定位一个API接口;
S342.API测试应用并根据配置信息判断定位API接口是否需要输入参数信息;
若是,进入步骤S343;
若否,进入步骤S344;
S343.API测试应用使用指令定位移动应用的参数输入框,输入参数;
S344.API测试应用使用指令定位API接口的执行按钮,启动测试;
S345.API测试应用判断API接口是否定位完毕;
若是,进入步骤S35;
若否,定位下一个API接口,返回步骤S342;
S35. API测试应用判断移动应用平台的API接口测试是否存在异常,并在存在异常时,对移动门户运行状态进行检测,而在移动门户出现崩溃且崩溃次数超限时,记录异常到状态数据;接口的严重错误会造成移动门户应用的崩溃,因此需要对此异常进行检测;步骤S35具体步骤如下:
S351.API测试应用判断移动应用平台的API接口测试是否存在异常;
若是,进入步骤S352;
若否,进入步骤S36;
S352.API测试应用检测移动门户的运行状态,判断是否出现崩溃;
若是,进入步骤S353;
若否,返回步骤S32;
S353.API测试应用判断崩溃次数是否超限;
若是,记录异常到状态数据,进入步骤S36;
若否,返回步骤S32;
S36. API测试应用读取执行结果,记录状态数据,生成测试报告;步骤S36具体步骤如下:
S361.API测试应用对需要交互的API接口模拟交互操作,通过指令读取API接口的执行结果;对于部分接口需要交互的,通过指令模拟这些交互,如相册选择、通讯录选择等,通过指令读取接口交互的执行结果;
S362.API测试应用对执行结果进行记录分类,完成状态数据记录;
S363.API测试应用在完成所有API接口调用测试后,生成excel格式的测试报告,输出成功接口信息、失败接口信息以及环境信息。
在某些实施例中,步骤S343具体步骤如下:
S3431.API测试应用使用指令定位移动应用的参数输入框;
S3432.API测试应用判断参数输入框是否定位成功;
若是,进入步骤S3433;
若否,API测试应用使用指令滑动页面,返回步骤S3431;
S343.API测试应用输入参数;
步骤S344具体步骤如下:
S3441.API测试应用使用指令定位API接口的执行按钮;
S3442.API测试应用判断API接口执行按钮定位是否成功;
若是,进入步骤S3443;
若否,API测试应用使用指令滑动页面,返回步骤S3441;
S3443.API测试应用点击API接口执行按钮。
本发明分为appium测试工程、appium服务端、移动终端三部分,其中appium测试工程遵从appium的规范生成测试脚本、生成报告;appium服务端负责接收测试脚本并下发至作为移动终端的手机执行;移动终端负责执行appium自动化测试脚本,通过脚本自动执行运行在移动应用平台上的作为H5应用的独立的API测试应用上的测试用例,该API测试应用负责逐个接口输入参数人工进行验证,并通过使用Promise、Proxy等技术改进实现接口测试的半自动化。本发明通过appium的自动化测试技术,可自动输入相应参数和启动接口验证,并最终根据作为移动终端的手机的硬件、操作系统等因素生成一份详细的测试报告。
本发明通过脚本指令自动化的进行接口的测试,结合集中化API测试应用,自动模拟用户交互操作,自动读取操作结果及异常处理,实现无人员参与的全自动化测试。
实施例3:
如图4所示,本发明提供一种混合开发模式下移动API的自动化测试系统,包括:
API测试应用发布模块,用于基于H5框架开发API测试应用,并将API测试应用发布于移动应用平台;API测试应用发布模块包括:
API测试应用生成单元,用于获取移动应用平台调用js API接口操作场景,基于H5框架对所有API接口操作场景进行模拟生成API测试应用;
测试应用发布单元,用于将H5框架的API测试应用发布于移动门户的移动应用平台;
appium测试工具及客户端生成模块,用于基于appium框架搭建appium测试工程,集成自动化执行脚本,生成appium客户端;appium测试工具及客户端生成模块包括:
appium测试工程搭建单元,用于基于appium框架搭建appium测试工程;
脚本集成单元,用于在appium测试工程集成自动化执行脚本,包括配置脚本、滑动脚本、图像脚本、异常脚本以及开启进程;
appium客户端创建单元,用于启动appium测试工程,通过配置脚本根据移动应用平台的版本信息读取配置信息,根据配置信息创建appimu客户端,并建立appium客户端与自动化执行脚本的连接;
API接口自动测试模块,用于在appium客户端通过自动化执行脚本连接appium服务端,启动API测试应用,对移动应用平台的API接口逐个进行自动化测试;API接口自动测试模块包括:
指令下发单元,用于在appium客户端通过自动化执行脚本连接appium服务端向移动终端下发指令;
移动应用平台登录单元,用于在appium客户端通过appium服务端启动移动门户,输入获取的用户名账号和密码,完成移动应用平台自动登录;
测试应用启动单元,用于在appium客户端通过appium服务端启动移动应用平台中API测试应用,自动填充接口全局环境参数信息;
测试应用执行单元,用于在appium客户端通过appium服务端向移动终端下发指令执行API测试应用,对移动应用平台的API接口逐个进行自动化测试;
测试异常判断单元,用于通过API测试应用判断移动应用平台的API接口测试是否存在异常,并在存在异常时,对移动门户运行状态进行检测,而在移动门户出现崩溃且崩溃次数超限时,记录异常到状态数据;
执行结果读取及测试报告生成单元,用于通过API测试应用读取执行结果,记录状态数据,生成测试报告。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
- 一种API接口的自动化测试方法
- 一种移动硬盘老化测试自动化测试方法及系统
- 一种DevOps开发模式性能自动化测试方法及系统
- 一种基于QT开发模式的自动化测试方法、装置及存储介质