00:05
下面呢,我来我们来了解一下capability啊,如何配置一些常用的参数。那这节课呢,我们会围绕capability的含义以及常用的一些参数介绍啊,这两部分来给大家介绍,首先呢,我们来了解一下什么是capability。那我们之前给大家介绍过啊,我们再去编写测试代码的时候啊,其实有一行非常非常关键的代码,我们再来看一下,那最关键这行代码呢,其实就是这一句web driver.remote然后给他传递两个参数,一个是URL,也就是这个URL呢,其实就是本地启动的一个服务的地址,那这个地址呢,其实啊,我们只要啊确定它的端口是4723,那这个地址基本就是这样的写法就是固定的,然后后面呢,Caps是我们定义的。啊,提前定义好的一个字典,那这个字典里呢,它有很多啊相应的key和value,那不同的key对应的不同的value,比如说我们啊要测试的这台手机设备是什么平台,那你要测试的是什么应用,那这个应用里要测试哪个界面,然后还有这个设备的名字,还有一些其他的这些啊设置,那这个caps呢,就是为我们去设置这些参数的,那只要给它定义在了一个字典里,那我们就可以把它传递到remote这个方法当中的第二个参数上。
01:27
然后这样呢,我们就可以得到一个session对象,那这个对象呢啊,他在我们后续的查找元素,对页面进行元素定位或者元素操作的时候都是非常重要的啊,就是这个driver啊,也就是我们啊这个跟。啊,Server建立连接之后,他给我们返回的这个对象,那这个对象里其实存啊存储了很多的信息啊,那这个信息呢,就是包括我们前面caps设置的这些信息,它其实都包含在这一个啊session里面,也就是说我们在编写测试用例的时候,然后去调用相应的方法,找到相应的元素,其实就是用了。
02:05
其实用就是用了我们啊前面定义好的这个session对象,然后通过这个session对象啊,去找到我们对应的设备来,去定位到这个这台设备上啊,这某一个界面上所啊拥有的某一个元素,对吧。那这样的话啊。再给大家捋一下,那这里面其实最重要的是什么呀?其实就是我们配置的caps了,那这个caps就是我们定义的这个字典,那这个字典里究竟有哪些参数,我们需要进行配置,那这些参数都代表的是什么含义?那么下面我们就来看一下,那我们了解了capability它的一个啊用途对吧,它的一个功能,那我们来看一下,那它的形式呢,就是以建制队进行存在的。我们定义一个字典,然后啊定义它的K值和对应的Y6值,来去定义我们想要的一些参数,然后这个capability呢,它主要分成三大部分,一个是公共的部分,还有iOS特有的部分,还有安安卓特有的一些设置的参数。
03:09
那下面呢,我们来看一下公共部分有哪些参数,其实公共部分的呃,参数非常的多啊,我这里给大家简单的列举出来常用的几个,一个是平台的名字,那我们要测试哪个平台,比如安卓呀,还是iOS呀,其实我们在啊啊,拿到手机或者说拿到模拟器的时候,一眼就基本上就能看出来它是哪个平台了,这个非常识别,然后还有一个平台就是firefox OS,那这个呢,一般现在用的已经非常非常少了,几乎是被淘汰了。然后还有第二个呢,就是平台的版本,这个平台的版本呢,就是我们手机操作系统的版本,那对于啊,比如说我们啊,拿这个模拟器举例子,每一台手机设备呢,它都有一个设置的应用。我们来找一下设置的啊,像这个一个啊滚轮轮齿这样的一个应用,然后我们找到这个应用啊打开啊打开这个设置的应用之后呢,往下滑一般都会有一个关于关于手机啊,关于平板电脑啊,我们点进去,然后在这里呢,它会有一个安卓安卓版本,然后6.0.1,那这个版本就是我们要啊配置到platform这个里面的一个版本,对吧。
04:26
啊,不同的手机,不同的模拟器,它都有不同的版本,所以我们要给它配置到啊,配置成不同的这个不同的这个值,然后还有就是设备的名字,设备的名字,比如说我们用的是安卓模拟器还是安卓真机啊iOS模拟器还是ipad模拟器,对吧。那这些呢,我们就需要给它配置成他的名字,那这个名字如何去获取,对于iOS系统来说,那我们来看一下它的官方吧。我们打开i.IO,然后找到document,打开这个啊English,然后点击啊这个。
05:03
啊,运行测试的这样一个项,然后下面有一个好。那在这里呢,我们可以看到它有一些通用的参数,安卓特有的和iOS特有的,还有一些其他的平台,比如说Windows应用啊,Mac Mac的这个应用,桌面应用的一些driver,那它都有一些相应的参数,那我们主要看这前三步吧。首先这个公共的对吧,那平台的名字我们刚才说过了,然后平台的版本也说过了,还有device name,那这个device name呢,就是我们设备的一个名字,那这个名字怎么去获取呢?我们怎么拿到这个名字呢?对于安卓和iOS,它两个的方式是不一样的,IOS的话啊,你可以使用这样的一个命令instruments-s device,那对于X code是大于12的版本,我们还有一个命令行工具啊,叫做C。SC啊,Sc list device,那我们可以通过这样的一个命令来去拿到我们设备的名称,然后配置到device name的这个啊值里面,然后对于安卓来说你就可以随便了,因为安对于安卓系统来说,它这一项是被忽略的。
06:09
那我们可以随便给他起一个啊,霍格沃兹都是可以的,然后那我们继续看。那对于公共的部分呢,还有比如说这个我们设置取啊,这个自动化引擎的一个参数,那这个参数呢,啊,比如说。我们安卓它默认的是ulm two iOS呢默认的是X UI test,那对于安卓来说呢,它比如早期的一些版本啊,它可能还会用到UI automter1,然后那可能是安卓的四点几啊的版本了,就是非常靠前的了,现在大部分的手机都是用的安卓uimter two,然后iOS呢也是用默认的这个Sui test,然后还有这个no re site,就是在我们的啊应用启动的时候呢,不帮我们完成一些缓存清空的一些操作,那就是no set,可以给它设置成true默false。
07:01
还有就是u did,它能够代表我们设备的唯一标识,那对于啊,这个安卓呀和iOS设备它都会啊,比如说你一台电脑上要连接多台手机设备,那我们都需要配置这样的一个参数。那对于安卓特有的部分,我们来看一下,安卓的话,它有一个概念,就是包和activity的这样的一个概念,那我们要测试的是哪个包,我们要测试的是这个包里面的首页是哪个页面,对吧?那我们上节课说过了,那它是怎么获取的,通过一行命令就可以获取的。然后那安卓的话,那。APP package就是它的包名,Activity呢,就是它的啊启动页的一个名字,那还有呢,就是我们想等待某个这个启动页启动成功,然后我们再执行下面的操作呢,就可以通过设置APP weight activity,然后来进行一个设置。然后嗯,我们也可以使用一个中文输入法啊,支持中文的一个unicode的输入法,然后这个通过设置这样的一个参数。
08:06
然后还有这个reet keyboard,就是重置我们的键盘,然后还有就是don't stop APP recet,就是在你第一次啊,在你启动APP的时候啊,不停止这个APP,这个我们后面也会讲到。因为我们每次去启动APP的时候,他都会帮我们把这个杀掉进程完全杀掉之后,再次去重新启动啊,保证我们这个啊是一个啊从初始化的这样的一个最初始的界面是启动起来的,然后那如果你不希望它从啊帮帮我们Q掉,然后从你原有的那个界面继续的往后执行,就可以加上这样的一个参数给它设置成处,就是不停止你的APP,直接在上一个页上一个停留的页面继续往后执行,那这个参数我一般不建议大家去设置啊,这个我们后面。还会再介绍,然后还有就是跳过设备的初始化。跳过设备初始化呢,就是完成一些安装,比如说我们在手机上安装一些啊IM setting啊,然后完成一些初始化的这个啊服务的安装啊好了,那这些呢,我们可以通过给它设置成处来跳过这些一这些啊这些这些设备的初始化,那这些初始化呢,其实在我们啊运行过一次脚本之后,那第二次其实就不需要了,但是我们其实每一次运行脚本的时候,它都会被把我们的设备重新初始化一次。
09:29
比如设置一些权限呀,那这个呢啊。比如说我们经常在一台手机设备上进行测测试的话,那我们就可以去跳过这一项,那这个呢,是安卓特有的一些,其实安卓特有的还有很多其他的参数啊,我们可以通过官方,然后查看到它有非常多的一些参数,比如你也可以设置他们交互的端口,然后或者说设置一个模拟器,对吧。还有这个Chrome driver的一个路径,那这些呢,都是安卓特有的一些属性啊一些。啊参数的配置,然后我们再来看一下iOS,它特有的,其实iOS也非常多啊,我们可以啊看一下官方对吧,它也非常多,那我们说一下比较常用的几个,一个是帮ID,那在安卓端的话,它是有一个包的概念,但是在iOS端的话,它是一个啊帮ID的概念,那我们可以通过设置bund ID来设置这个iOS的被测应用。
10:26
然后第二个呢,就是啊这个当我们这个,比如说我们啊在测试,在测试这个应用的时候,它可能会有一些弹框啊警告的弹框,比如说获取你的位置啊,或者获取你的联系人的权限呀,那啊或者说获取你这个啊这个图片权限呀,那这些呢,啊,它这个我们需要手动的点一下,或者说通过啊一些元素定位的方式去获取一下这些元素,然后进行点击,那这里面呢,有一个啊配置就是auto to accept alerts,就是我们可以去接收,要接受这些啊弹框就是凡是这个需要允许。
11:06
啊,访问访问警告的这些弹框呢,都可以让他默认的帮我们点accept。接受啊,默认是false啊,我们可以给它设置成储,还有就是啊,将我们的这些日志,手机端的日志全都捕获下来,然后展示在I里面。就是受iOS log,然后默认也是boss,好,那这个呢,就是iOS独有的,那一般来说呢,我们就是给它设置成一个字典的格式啊,就是通过这个key和value的形式给它设置上,那这个呢,是我们啊这个启动APIDEMO啊,需要设置的一些key和value,就是比如说平台的名字,然后设备的名字,APP package和APP activity。那除此之外呢,除一些除除了一些普通的这些设置啊,其实我们还可以去完成一些特殊的配置,比如说啊,不清空缓存,No reset对吧,不停止应用啊在啊启动的时候不停止应用啊,Don't stop APP or recet,还有就是跳过设备的。
12:11
呃,初始化,然后给它设置成处,也能够提高我们的启动速度,还有就是键盘的一些设置,比如说我们需要输入中文了,那就可以设置这个,所以这个呢,还ability是非常灵活的,就是我们想要完成哪些功能,想要啊完让我们的测试脚本进行一个加速啊,或者说收集一些信息啊都可以啊,通过它来进行配置,那我们后面在真正讲到实战的时候啊。会。会再详细的介绍这一块,然后这块呢,大家先有一个概念性的了解。
我来说两句