Windows上实现iOSAPP自动化测试方法与流程
未命名
10-08
阅读:74
评论:0

windows上实现ios app自动化测试方法
技术领域
1.本技术属于测试技术领域,尤其涉及一种windows上实现ios app自动化测试方法。
背景技术:
2.随着社会的进步,移动互联网的发展也是比较迅速,人们出门在外直接一个app就能解决很多问题,各种社交、娱乐、电商、资讯类等软件出现在各应用市场。越来越多的人开始使用app来进行一些日常的操作,生活缴费,公积金办理,在线预约挂号等操作在手机上更是可以轻松实现。
3.而一个好的移动软件是需要经受住各种考验的,所以在日常开发中,一个应用或者系统的良好稳定性,无论是对于用户还是产品来说是十分重要的!当应用上线有大量用户访问的时候,页面的打开速度直接影响用户体验,进而影响用户的留存。了解用户的真实使用体验,对应用做出针对性的性能评估,有效提升用户体验,也是非常必要的。
技术实现要素:
4.有鉴于此,本技术旨在提出一种windows上实现ios app自动化测试方法,以至少解决背景技术中的至少一个问题。
5.为达到上述目的,本技术的技术方案是这样实现的:
6.windows上实现ios app自动化测试方法,包括以下步骤:
7.s1、在本地python环境中,使用pip install tidevice命令安装tidevice库;
8.s2、ios设备安装wda,安装自动化测试工具;
9.s3、启动wda,获取设备的udid,查看wda的bundle id,使用tidevice启动ios设备上的wda应用;
10.s4、打开airtest ide,输入地址;
11.s5、airtest连接设备,编写测试用例,进行测试。
12.进一步的,在步骤s1中,使用tidevice时,需要提前安装itunes,并连接手机。
13.进一步的,在步骤s2中,获取设备的udid的命令为tidevice list;查看wda的bundle id命令为tidevice applist;使用tidevice启动ios设备上的wda应用命令为tidevice-u[设备udid]wdaproxy-b[wda的bundle id]
‑‑
port8100。
[0014]
进一步的,在步骤s3中,打开airtest ide中输入地址,其中8100是使用tidevice启动wda时设置的端口号。
[0015]
进一步的,在步骤s5中,airtest利用图像识别的方法进行元素操作。
[0016]
进一步的,还可以使用poco进行ui元素操作,wda启动和连接设备和airtest相同,ui元素可通过在airtestide的poco辅助窗查看。
[0017]
进一步的,acebook-wda、airtest和poco这3个测试库可以在一个测试项目中使用,使用这3个库实现app自动化测试,从而满足我们的使用需求。
[0018]
进一步的,本方案公开了一种windows上实现ios app自动化测试装置,运行windows上实现ios app自动化测试方法。
[0019]
进一步的,本方案公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现windows上实现ios app自动化测试方法方法。
[0020]
进一步的,本方案公开了一种非暂态计算机可读存储介质,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行windows上实现ios app自动化测试方法方法。
[0021]
相对于现有技术,本技术所述的windows上实现ios app自动化测试方法具有以下有益效果:
[0022]
本技术所述的windows上实现ios app自动化测试方法,解决了因为测试软件系统或版本不一致,可能导致项目延期或兼容性的情况,还能在windows机器上在同一桌面实现统一监测,大大提高了开发和测试人员的工作效率。
附图说明
[0023]
构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0024]
图1为本技术实施例所述的在pc进行ios自动化测试框架原理图示意图;
[0025]
图2为本技术实施例所述的airtest ide中配置示意图;
[0026]
图3为本技术实施例所述的airtest连接设备后进行元素操作,对应的脚本示意图;
[0027]
图4为本技术实施例所述的multi_install.bat文件对应的脚本内容示意图;
[0028]
图5为本技术实施例所述的电子设备结构示意图。
具体实施方式
[0029]
为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
[0030]
需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0031]
基于此,本技术中的一个或多个实施例中提供了windows上实现ios app自动化测试方法。
[0032]
以下结合附图详细说明本技术的实施例。
[0033]
windows上实现ios app自动化测试方法,包括以下步骤:
[0034]
s1、在本地python环境中,使用pip install tidevice命令安装tidevice库;
[0035]
s2、ios设备安装wda,安装自动化测试工具;
[0036]
s3、启动wda,获取设备的udid,查看wda的bundle id,使用tidevice启动ios设备上的wda应用;
[0037]
s4、打开airtest ide,输入地址;
[0038]
s5、airtest连接设备,编写测试用例,进行测试。
[0039]
在步骤s1中,使用tidevice时,需要提前安装itunes,并连接手机。
[0040]
在步骤s2中,获取设备的udid的命令为tidevice list;查看wda的bundle id命令为tidevice applist;使用tidevice启动ios设备上的wda应用命令为tidevice-u[设备udid]wdaproxy-b[wda的bundle id]
‑‑
port 8100。
[0041]
在步骤s3中,打开airtest ide中输入地址,其中8100是使用tidevice启动wda时设置的端口号。
[0042]
在步骤s5中,airtest利用图像识别的方法进行元素操作。
[0043]
还可以使用poco进行ui元素操作,wda启动和连接设备和airtest相同,ui元素可通过在airtestide的poco辅助窗查看。
[0044]
acebook-wda、airtest和poco这3个测试库可以在一个测试项目中使用,使用这3个库实现app自动化测试,从而满足我们的使用需求。
[0045]
需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0046]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术的实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0047]
上述实施例的装置用于实现前述任一实施例中相应的windows上实现ios app自动化测试方法,并且具有相应的方法实施例的有益效果,在此不再蔡述。
[0048]
基于同一发明构思,与上述任意实施例方法相对应的,本技术的实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的windows上实现ios app自动化测试方法。
[0049]
本方案针对app的软件测试就变得非常重要,测试过程中对于手机兼容性的测试也很重要,不同的机型,不同的系统型号都可能出现不一样的结果。在测试过程中需要再各个真机或者云真机上进行软件的安装,只有模拟各种应用场景才能更好的避免用户在使用时出现不必要的麻烦,我们都清楚,安卓和ios是两个不同的系统,正常情况下ios系统的手机软件是不会直接在windows系统上运行的,也不能想安卓的adb命令那样使用方便,那么当我们身边没有mac机器或者资源有限时,如果ios系统的软件能够在windows机器上运行使用,就变得十分方便了。
[0050]
下面以公司ios项目为例,结合公司正在进行的项目,通过tidevice和facebook-wda实现在windows上进行ios app自动化测试方案。
[0051]
1、手机端的wda runner(webdriveragent)类似于appium测试框架中的uiautomator server,将从客户端接收到的控制命令转换为xcuitest相关api操作,实现对应用界面的控制。webdriveragent应用需要通过xcode编译安装。usbmuxd是苹果提供的一个服务,用于usb和tcp协议之间的转换,实现在没有网络的情况下也可以连接设备,itunes和xcode就使用到了这个服务,所以在环境安装中需要在windows上安装一个itunes。wda的启动使用阿里开源的tidevice工具。language bindings为不同语言的测试脚本,比如基于python语言的facebook-wda,基于go语言的gwda等,框架原理可见附图1。
[0052]
2、wdaclient:wda的客户端,测试库facebook-wda就是wda的python客户端库,通过http协议(mobile json wire protocol)与webdriveragent进行通信。webdriveragentrunner:运行在手机上的wda server,默认监听端口为8100,主要功能包括
①
接收wdaclient的请求并将操作命令发送给xctest.framework。
②
将响应发送给wda client。
[0053]
3、连接上ios设备后就可以编写测试用例了,airtest使用的是图像识别的方法进行元素操作。
[0054]
本次方法的实现,可以让测试人员在windows系统上实现对ios移动设备软件的ui自动化及压力测试方法,借助三方工具编写脚本语言来达到定位软件元素,运行测试用例,生成测试报告,这对于像我们公司这样需要进行多轮测试,对测试点反复重复测试的情况,就变得省事省力了不少。
[0055]
这种测试执行方案,不仅解决了因为测试软件系统或版本不一致,可能导致项目延期或兼容性的情况,还能在windows机器上在同一桌面实现统一监测,大大提高了开发和测试人员的工作效率。
[0056]
通过这种方式可以节省一定的测试时间,提高了办事效率,为我们的系统测试争取了宝贵的时间,如果对于有众多项目且mac资源有限的情况来说,这种测试方式无疑是最有效,最可行的。
[0057]
具体方法如下:
[0058]
1、在本地python环境中,使用pip install tidevice命令安装tidevice库。(仅支持python3.7及以上版本),使用tidevice时,需要提前安装itunes,并连接手机(注意:打开代理的情况(charles、fiddler)会下载失败,关闭后重新下载即可)。
[0059]
2、ios设备安装wda,安装自动化测试工具airtest。
[0060]
3、启动wda,获取设备的udid(命令:tidevice list),查看wda的bundle id:(命令:tidevice applist),使用tidevice启动ios设备上的wda应用(命令:tidevice-u[设备udid]wdaproxy-b[wda的bundle id]
‑‑
port 8100。
[0061]
4、打开airtest ide,在右下角【连接ios设备】中输入地址,其中8100是使用tidevice启动wda时设置的端口号,可见附图2所示。
[0062]
5、airtest连接设备,连接上ios设备后就可以编写测试用例了,airtest使用的是图像识别的方法进行元素操作,示例脚本可见附图3所示。
[0063]
6、也可以使用poco进行ui元素操作,wda启动和连接设备和airtest一样。ui元素可通过在airtestide的poco辅助窗查看,注意要选择ios,可见附图4所示。
[0064]
7、facebook-wda、airtest和poco这3个测试库可以在一个测试项目中使用,使用
这3个库实现app自动化测试,从而满足我们的使用需求。
[0065]
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0066]
处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0067]
存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0068]
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0069]
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0070]
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0071]
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0072]
上述实施例的电子设备用于实现前述任一实施例中相应的windows上实现ios app自动化测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0073]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的windows上实现ios app自动化测试方法。
[0074]
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0075]
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施
例所述的windows上实现ios app自动化测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0076]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0077]
另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0078]
尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0079]
本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.windows上实现ios app自动化测试方法,其特征在于,包括以下步骤:s1、在本地python环境中,使用pip install tidevice命令安装tidevice库;s2、ios设备安装wda,安装自动化测试工具;s3、启动wda,获取设备的udid,查看wda的bundle id,使用tidevice启动ios设备上的wda应用;s4、打开airtest ide,输入地址;s5、airtest连接设备,编写测试用例,进行测试。2.根据权利要求1所述的windows上实现ios app自动化测试方法,其特征在于,在步骤s1中,使用tidevice时,需要提前安装itunes,并连接手机。3.根据权利要求1所述的windows上实现ios app自动化测试方法,其特征在于,在步骤s2中,获取设备的udid的命令为tidevice list;查看wda的bundle id命令为tidevice applist;使用tidevice启动ios设备上的wda应用命令为tidevice-u[设备udid]wdaproxy-b[wda的bundle id]
‑‑
port 8100。4.根据权利要求1所述的windows上实现ios app自动化测试方法,其特征在于,在步骤s3中,打开airtest ide中输入地址,其中8100是使用tidevice启动wda时设置的端口号。5.根据权利要求1所述的windows上实现ios app自动化测试方法,其特征在于,在步骤s5中,airtest利用图像识别的方法进行元素操作。6.根据权利要求1所述的windows上实现ios app自动化测试方法,其特征在于:还可以使用poco进行ui元素操作,wda启动和连接设备和airtest相同,ui元素可通过在airtestide的poco辅助窗查看。7.根据权利要求1所述的windows上实现ios app自动化测试方法,其特征在于:acebook-wda、airtest和poco这3个测试库可以在一个测试项目中使用,使用这3个库实现app自动化测试,从而满足我们的使用需求。8.一种windows上实现ios app自动化测试装置,其特征在于:运行windows上实现ios app自动化测试方法。9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7任一项所述的windows上实现ios app自动化测试方法方法。10.一种非暂态计算机可读存储介质,其特征在于,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7任一项所述的windows上实现ios app自动化测试方法方法。
技术总结
本申请提供了一种Windows上实现iOS APP自动化测试方法,包括以下步骤:S1、在本地python环境中,使用pip install tidevice命令安装tidevice库;S2、iOS设备安装WDA,安装自动化测试工具;S3、启动WDA,获取设备的UDID,查看wda的bundle id,使用tidevice启动iOS设备上的WDA应用;S4、打开Airtest IDE,输入地址;S5、airtest连接设备,编写测试用例,进行测试。本申请所述的Windows上实现iOS APP自动化测试方法,解决了因为测试软件系统或版本不一致,可能导致项目延期或兼容性的情况,还能在windows机器上在同一桌面实现统一监测,大大提高了开发和测试人员的工作效率。提高了开发和测试人员的工作效率。提高了开发和测试人员的工作效率。
技术研发人员:马华强
受保护的技术使用者:紫光云技术有限公司
技术研发日:2023.05.18
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种高效井筒腐蚀监测挂环器 下一篇:一种基于非均匀采样模板的磁共振对称谱重建方法