基于bdd的移动app自动测试平台和测试方法

文档序号:10552836阅读:937来源:国知局
基于bdd的移动app自动测试平台和测试方法
【专利摘要】本发明属于数据处理技术领域,提供了基于BDD的移动APP自动测试平台和测试方法,包括:案例模块、案例集模块、项目管理模块、页面维护模块、参数维护模块、终端设备维护模块、测试报告模块、配置模块和用户管理模块;本发明的自动化测试平台是基于行为驱动开发BDD理念实现的,能够测试安卓和IOS系统,在BDD模式下构建测试用例应该先于开发代码,测试用例使用自然语言描述,以便于没有IT专业背景的业务专家也能够理解测试用例逻辑;并且自动化测试平台的系统管理员可以预定义用自然语言描述的命令,而测试项目师和业务专家只需简单地选择预定义命令,就可以完成测试用例的开发,减轻了测试项目师和业务专家的工作量,合理、轻松的实现了测试。
【专利说明】
基于BDD的移动APP自动测试平台和测试方法
技术领域
[0001]本发明属于数据处理技术领域,特别涉及一种基于BDD的移动APP自动测试平台和测试方法。
【背景技术】
[0002]软件的自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。测试人员按照测试用例编写自动化测试脚本,再由机器执行验证。自动化脚本可以在工程师疲累或者离开的时候自动运行,并且记录测试结果;自动化测试还可以不断地重复某个动作而不会感到疲倦。
[0003]现在人们的生活已经与智能手机紧密相连,而为移动APP编写自动化测试脚本是一件非常复杂的事情,并且很难保证正确性;进一步地,由于手机分为Android和1S两种安装系统,不同的安装系统适用于不同的自动化测试脚本,因此如何开发出一款既能够适用于Android,又能够适用于1S系统的自动化测试平台成为了本数据处理技术领域要解决的首要难题。
[0004]现有技术中也存在一些学习成本较低的自动化测试工具,本身会带有录制功能,即:录制所有在终端上的操作动作后自动生成一系列可运行的脚本代码,但测试的核心工作是验证脚本代码运行后所最终产生的结果是否符合预期,而现有技术中的自动化测试工具不具备分析是否符合预期的功能,仍需IT专业人员使用相应工具及计算机语言编写。
[0005]因此,数据处理技术领域急需基于BDD的移动APP自动测试平台和测试方法,自动化测试平台是基于行为驱动开发BDD理念实现的,在BDD模式下构建测试用例应该先于开发代码,测试用例使用自然语言描述,以便于没有IT专业背景的业务专家也能够理解测试用例逻辑;并且自动化测试平台的系统管理员可以预定义用自然语言描述的命令,而测试项目师和业务专家只需简单地选择预定义命令,就可以完成测试用例的开发,减轻了测试项目师和业务专家的工作量,用最合理的方式轻松实现测试驱动开发;能够实现操作动作及验证结果的全部编写,非IT专业人员经过简单培训即可使用,适用性更强。

【发明内容】

[0006]本发明提供了基于BDD的移动APP自动测试平台和测试方法,技术方案如下:
基于m)D的移动APP自动测试平台,包括:案例模块、案例集模块、项目管理模块、页面维护模块、参数维护模块、终端设备维护模块、测试报告模块、配置模块和用户管理模块,用户管理模块分别与终端设备维护模块、项目管理模块相连接,终端设备维护模块分别与页面维护模块、参数维护模块相连接,项目管理模块分别与页面维护模块、参数维护模块、案例模块、案例集模块相连接,页面维护模块与配置模块相连接,案例模块与测试报告模块相连接;
优选的,在上述基于BDD的移动APP自动测试平台中,案例模块用于通过具有规则性的自然语言,进行具体的案例编写、修改维护和无用案例的删除工作; 案例集模块,用于将案例模块内的多个单独案例整合为一个案例集,进而实现一次测试多个案例;能够在运行多个案例集的同时记录具体案例集的执行情况,在每个案例出现异常、错误时自动截屏保存,并记录每个案例集的具体报错信息;
项目管理模块,用于配置待测APP的项目名称、项目应用平台类型Android或1S,以及待测APP的具体路径、版本、备注,并对待测APP的具体项目进行维护;
页面维护模块,用于根据待测APP中的不同界面创建不同的页面,并在界面上具体配置、维护该页面下的具体元素;
参数维护模块,用于配置参数名称、参数值、所属项目以及所属设备信息;
终端设备维护模块,用于配置设备名称、设备硬件名称、平台名称、版本、服务端地址URL、分辨率、设备的唯一ID或UID,以及备注信息;
测试报告模块,用于查看具体的截屏报告、报错语句、成本核算、同步绩效管理系统QC,以及导出EXCEL文档和发送邮件;
配置模块,用于提供页面、案例、参数的快捷复制以及邮件的收发配置;
用户管理模块,用于提供各个人员的角色权限管理和项目名称管理。
[0007]基于BDD的移动APP自动测试方法,包括如下步骤:
步骤一,在电脑PC端安装待测应用程序,手机通过USB数据线连接于PC端上,在USB调试模式下识别出手机连接;
步骤二,在项目管理模块下配置待测APP的项目名称、项目应用平台类型Android或10S,以及待测APP的具体路径、版本和备注;
步骤三,在终端设备维护模块下配置设备名称、设备硬件名称、平台名称、版本号、服务端地址URL、分辨率、设备的唯一ID或UID,以及备注信息;
步骤四,在页面维护模块下新增页面,并配置相关页面元素;
步骤五,在案例模块下新增案例,并在项目名称选项下使其与相关项目关联,在步骤列表内依据规范编写对应的测试语句;
步骤六,在案例模块下运行该待测案例或在案例集模块中运行该待测案例集;
步骤七,在测试报告模块中查看具体测试结果和案例具体错误信息。
[0008]本发明的有益效果:
1、本发明兼容了安卓和1S双系统的测试,以及支持QC组同步,内置了邮件发送服务和BUG截图功能,其中安卓系统调用了 SDK的API,I OS系统调用了 XCODE的API以实现真正意义上的双测试。在1S系统调用XODE的API时由于1S的核心及1S下被测APP应用的IPA包是闭源的,导致无法正常调用,针对此问题,本发明的解决方式为:取得开发者账号、开发者证书及开发者包后通过XCODE编译并同步安装至1S终端设备中。
[0009]2、本发明通过APPIUM框架实现了Android/1S不同平台下,同一应用案例可跨平台执行业务的测试;根据APPIUM框架下的getEIementText方法来获取元素文本,通过sendKey方法来进行文本输入,通过swap方法来文本滑动操作,通过click方法进行点击操作,来实现点击、输入、滑动、输入文本等操作。
【附图说明】
[0010]下面结合附图和【具体实施方式】来详细说明本发明: 图1是本发明基于m)D的移动APP自动测试平台的框架图。
[0011 ]图2是本发明一条模拟自动化用例的流程图。
【具体实施方式】
[0012]为了使本发明技术实现的措施、创作特征、达成目的与功效易于明白了解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0013]实施例1:
图1是本发明基于m)D的移动APP自动测试平台的框架图。
[0014]如图1所示,基于BDD的移动APP自动测试平台,包括:
基于m)D的移动APP自动测试平台,包括:案例模块、案例集模块、项目管理模块、页面维护模块、参数维护模块、终端设备维护模块、测试报告模块、配置模块和用户管理模块,用户管理模块分别与终端设备维护模块、项目管理模块相连接,终端设备维护模块分别与页面维护模块、参数维护模块相连接,项目管理模块分别与页面维护模块、参数维护模块、案例模块、案例集模块相连接,页面维护模块与配置模块相连接,案例模块与测试报告模块相连接;案例模块下自动化案例的运行需要调用项目管理模块、页面维护模块、参数维护模块下的数据;项目模块下新增项目时需要调用终端设备维护模块下的终端设备信息;案例集模块下的案例集运行需要调用案例模块下的自动化案例;测试报告模块下的测试报告信息读取自数据库表,而其写入实际是通过运行案例或案例集生成的测试报告信息;用户管理模块决定登录用户取得的权限,如:用户类型为测试人员的用户登录本发明平台是无法使用项目管理、配置、用户管理等等模块的。
[0015]案例模块,用于通过具有规则性的自然语言,进行具体的案例编写、修改维护和无用案例的删除工作;此处也是本发明的核心价值之一,现如今市场上已存在多种多样的自动化测试工具,如:Frank、KIF、1s_driver、Robotium等等,而这些工具在使用过程中大多数需要由IT专业人员(懂计算机语言)编写自动化用例,例如图2中使用Robotium工具编写的自动化测试用例:
案例集模块,用于将案例模块内的多个单独案例整合为一个案例集,进而实现一次测试多个案例;能够在运行多个案例集的同时记录具体案例集的执行情况,在每个案例出现异常、错误时自动截屏保存,并记录每个案例集的具体报错信息;
项目管理模块,用于配置待测APP的项目名称、项目应用平台类型Android或10S,以及待测APP的具体路径、版本、备注,并对待测APP的具体项目进行维护;
页面维护模块,用于根据待测APP中的不同界面创建不同的页面,并在界面上具体配置、维护该页面下的具体元素,例如:登录页面下的账户、密码框等;
参数维护模块,用于配置参数名称、参数值、所属项目以及所属设备信息;
终端设备维护模块,用于配置设备名称、设备硬件名称、平台名称、版本、服务端地址URL、分辨率、设备的唯一ID或UID,以及备注信息;
测试报告模块,用于查看具体的截屏报告、报错语句、成本核算、同步绩效管理系统QC,以及导出EXCEL文档和发送邮件;
配置模块,用于提供页面、案例、参数的快捷复制以及邮件的收发配置;
用户管理模块,用于提供各个人员的角色权限管理和项目名称管理。
[0016]步骤一,在电脑PC端安装待测应用程序,手机通过USB数据线连接于PC端上,在USB调试模式下识别出手机连接;
步骤二,在终端设备维护模块下配置设备名称、设备硬件名称、平台名称、版本号、服务端地址URL、分辨率、设备的唯一ID或UID,以及备注信息;当新增案例时需选择终端设备维护模块下关联的设备,运行案例时会读取终端设备维护模块下的设备配置信息。
[0017]步骤三,在项目管理模块下配置待测APP的项目名称、项目应用平台类型Android或10S,以及待测APP的具体路径、版本和备注;当新增案例时需选择关联的项目,运行案例时会读取项目管理模块下的配置信息。
[0018]步骤四,在页面维护模块下新增页面,并配置相关页面元素;当新增案例时,双引号中所需填写的元素会调用页面维护模块下的关联页面及页面下对应的元素信息。
[0019]步骤五,在案例模块下新增案例,并在项目名称选项下使其与相关项目关联,在步骤列表内依据规范编写对应的测试语句;
步骤六,在案例集模块下创建新的案例集,并添加案例模块下的某几个案例,以组成案例集,此处选择添加的案例从案例模块下的案例信息读取
步骤七,在案例模块下勾选是否保存运行结果,然后运行该待测案例或在案例集模块中运行该待测案例集;
步骤八,待步骤七完成后在案例在测试报告模块中点击详情查看具体测试结果和案例具体错误信息。并可以邮件的形式或Excel表格的形式导出相关数据。
[0020]图2是本发明一条模拟自动化用例的流程图,下面结合具体实施例对本发明进行具体的阐述,本实施例是一条模拟自动化用例,包括前期准备到执行完毕整个流程,具体如图2所示:
步骤一,将被测APP的APK文件copy至PC端,测试终端通过USB连接PC,至本发明终端设备维护模块下新增终端配置信息,点击保存,写入数据库t_deviCe表;
步骤二,至本发明项目维护模块下新增项目配置信息,其中可选终端从设备维护模块中读取,点击保存,写入数据库t_pr0jeCt表,案例中使用的关键字,即双引号中的内容调用项目维护、页面维护、参数维护模块中的数据;
步骤三,至本发明页面维护模块新增页面信息,点击保存,写入数据库t_page表; 步骤四,打开Appium工具,使用Appium真机元素捕捉功能,获取被测应用中的具体元素值;
步骤五,至本发明页面维护模块选择对应的页面,新增元素信息,点击保存,写入数据库 t_element 表;
步骤六,至本发明案例模块新增自动化用例,点击保存,案例标题写入数据库1(^%表,案例具体执行步骤及动作写入t_step表;
步骤七,选择测试真机设备,使用々卩卩丨^^⑶的^^^一^^方法判断安卓/^^’如果是安卓系统,则调用SDK-API驱动运行案例,运行案例时是否勾选测试报告选项,如果勾选,则案例执行完毕后显示用例执行结果及生成测试报告写At_stat_step表,整个流程结束,本发明中测试报告模块读取t_stat_step表的数据,在页面中展示完整的测试报告,如果不勾选,则案例执行完毕后显示案例执行结果整个流程结束;如果是1S系统,则调用XCODE-API驱动运行案例,运行案例时是否勾选测试报告选项,如果勾选,则案例执行完毕后显示用例执行结果及生成测试报告写入t_stat_step表,整个流程结束,本发明中测试报告模块读取七_stat_step表的数据,在页面中展示完整的测试报告,如果不勾选,则案例执行完毕后显示案例执行结果整个流程结束;案例中使用的关键字,即双引号中的内容调用项目维护、页面维护、参数维护模块中的数据。
[0021]本发明使用了关键字驱动的方法,封装了大量的关键字,通过使用一些规则语句,如:当我点击“XXX”按钮,用户只需在双引号中填写相关元素名即可。
[0022]本发明采用标识交换,无需认证中心CA(Certificate Authority),也不需要密钥交换,只需认证双方进行签名验签即可,不需要访问控制器AC(Access Controller)、终端与访问节点AP(Access Point)就可以完成签名和验签,以及信息加解密,减少了安全隐患和网络开销,同时提高了效率,用户操作便捷,无需每次链接登陆都输入手机号码和验证码,降低了验证短信开销,适用于互联网,特别是无线互联网;过程更加简单、安全,用户体验性更好,降低了密钥泄漏和拦截的风险。
[0023]本发明兼容了安卓和1S双系统的测试,以及支持QC组同步,内置了邮件发送服务和BUG截图功能,这些需要结合功能单元进行详尽描述,例如:(I)通过哪些技术手段解决了现有的测试系统只能测试一种系统的问题,可能是通过定义了 2种语言,分别对应不同的功能操作路径进而实现了双测试;(2)在兼容双系统的开发中,软件和硬件上都遇到了哪些问题,都是通过哪些手段解决的。
[0024]本发明通过APPIUM框架实现了Android/1S不同平台下,同一应用案例,可跨平台执行业务测试。根据APPIUM框架下的getElementText方法来获取元素文本,通过sendKey方法来进行文本输入,通过swap方法来文本滑动操作,通过click方法进行点击操作。来实现点击、输入、滑动、输入文本等操作。
[0025]以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
【主权项】
1.基于BDD的移动APP自动测试平台,其特征在于,包括:案例模块、案例集模块、项目管理模块、页面维护模块、参数维护模块、终端设备维护模块、测试报告模块、配置模块和用户管理模块; 所述用户管理模块分别与终端设备维护模块、项目管理模块相连接; 所述终端设备维护模块分别与页面维护模块、参数维护模块相连接; 所述项目管理模块分别与页面维护模块、参数维护模块、案例模块、案例集模块相连接; 所述页面维护模块与配置模块相连接; 所述案例模块与测试报告模块相连接。2.根据权利要求1所述的基于BDD的移动APP自动测试平台,其特征在于,所述案例模块,用于通过具有规则性的自然语言,进行具体的案例编写、修改维护和无用案例的删除工作; 所述案例集模块,用于将所述案例模块内的多个单独案例整合为一个案例集,进而实现一次测试多个案例;能够在运行多个案例集的同时记录具体案例集的执行情况,在每个案例出现异常、错误时自动截屏保存,并记录每个案例集的具体报错信息; 所述项目管理模块,用于配置待测APP的项目名称、项目应用平台类型Android或1S,以及待测APP的具体路径、版本、备注,并对待测APP的具体项目进行维护; 所述页面维护模块,用于根据待测APP中的不同界面创建不同的页面,并在界面上具体配置、维护该页面下的具体元素; 所述参数维护模块,用于配置参数名称、参数值、所属项目以及所属设备信息; 所述终端设备维护模块,用于配置设备名称、设备硬件名称、平台名称、版本、服务端地址URL、分辨率、设备的唯一ID或UID,以及备注信息; 所述测试报告模块,用于查看具体的截屏报告、报错语句、成本核算、同步绩效管理系统QC,以及导出EXCEL文档和发送邮件; 所述配置模块,用于提供页面、案例、参数的快捷复制以及邮件的收发配置; 所述用户管理模块,用于提供各个人员的角色权限管理和项目名称管理。3.基于m)D的移动APP自动测试方法,其特征在于,包括如下步骤: 步骤一,在电脑PC端安装待测应用程序,手机通过USB数据线连接于PC端上,在USB调试模式下识别出手机连接; 步骤二,在项目管理模块下配置待测APP的项目名称、项目应用平台类型Android或10S,以及待测APP的具体路径、版本和备注; 步骤三,在终端设备维护模块下配置设备名称、设备硬件名称、平台名称、版本号、服务端地址URL、分辨率、设备的唯一ID或UID,以及备注信息; 步骤四,在页面维护模块下新增页面,并配置相关页面元素; 步骤五,在案例模块下新增案例,并在项目名称选项下使其与相关项目关联,在步骤列表内依据规范编写对应的测试语句; 步骤六,在案例模块下运行该待测案例或在案例集模块中运行该待测案例集; 步骤七,在测试报告模块中查看具体测试结果和案例具体错误信息。
【文档编号】G06F11/36GK105912473SQ201610234547
【公开日】2016年8月31日
【申请日】2016年4月15日
【发明人】高华忠, 黄家晏, 杨明明, 桂燕萍, 张羽
【申请人】上海海万信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1