Appium+WebDriverIO+Jasmine自动化测试Cordova APP(二) 配置wdio.conf.js(Android)

在上一章中介绍了Appium+WebDriverIO+Jasmine这套体系的安装

这一章介绍  Appium+WebDriverIO+Jasmine在进行自动化测试的时候的一些配置

在安装时我们安装@wdio/cli 的时候执行了这行代码

./node_modules/.bin/wdio config -y 

这行代码会生成一个叫 wdio.conf.js的文件,我们的所有配置都是在这里面进行的。
配置wdio.conf.js也是整个自动化测试环节中比较难的一部分。

让我们开始吧!
首先是配置文件wdio.conf.js的结构,结构很简单,就是基础配置+主要的“capabilities ”的配置。

基础配置请参考:https://webdriver.io/docs/options.html
主要的capabilities 请参考 : http://appium.io/docs/cn/writing-running-appium/caps/index.html
这是官方的配置信息,所有的配置项都列出来了,。
一下是我写的一个简单的配置文件,可以根据我的文件进行修改

exports.config = {
  //appium的端口一般不用修改
  port: 4723,
  
  //要打印的信息五个等级  trace | debug | info | warn | error | silent  输出信息依次递减
  logLevel: 'trace',

  //每个测试用例最多等待结果的时间(毫秒)
  waitforTimeout: 20000,

  //最多等待连接的时长
  connectionRetryTimeout: 190000,

  //最多连接失败的次数
  connectionRetryCount: 2,

  //测试脚本的路径
  specs: ['./tests/specs/**/*.test.js'],

  // 服务 appium不用修改  ——————比如基于客户端使用的就是appium,基于浏览器使用的可能是selenium-standalone
  services: ['appium'],

  //打印信息的, 
  reporters: ['spec'],

  //编写脚本的框架,我们选用的是jasmine 不用改——————BDD框架,比如使用的可能是cucumber则这里对应改成cucumber
  framework: 'jasmine',
  
  //jasmine 配置 
  jasmineNodeOpts: {
    defaultTimeoutInterval: 60000
  },

    //主要的配置用来验证各种信息的
   capabilities: [{
   
   //app 的activity名,一般是MainActivity
   appActivity: 'MainActivity',
   
    //app 的包名
   appPackage:'com.antoTest.mobile.app',
   
    // 'Android' or 'iOS'
    platformName: 'Android',

    //系统版本号 如安卓10
    platformVersion: '10.0',

    //测试的设备名,any表示任意设备
    deviceName: 'any',

    //app的路径 :  必须是绝对路径或者远程路径,不能是相对路径
    app: '绝对路径/debug-app.apk',
   
    //chromedriver的路径            
    chromedriverExecutable:'C://Users/Administrator/AppData/Local/Programs/Appium/resources/app/node_modules/appium/node_modules/appium-chromedriver/chromedriver/win/chromedriver.exe',

    //自动切换到webview context 
    autoWebview: true,
    
    //自动获取应用需要的权限
    autoGrantPermissions: true
  }],
}

这个配置比较简单,你可以根据你的需求进行更改,配置并不能直接使用的,需要根据你的设备系统、版本跟你的app属性进行修改。

chromedriver版本选择
还有一个比较重要的点就是chromedriver版本的选择,因为cordova app是混合型的app,简单来说混合型app就是web应用套上 android 或者 ios的外壳组成了一个android或者ios应用,而我们appium是调用安卓系统本身的自动化测试代码来进行自动化测试,而安卓系统原生的自动化测试框架对H5的支持不够,所以我们需要使用chromedriver来驱动H5。我们应该都知道安卓系统是基于chrome内核的,因此 chromedriver的版本跟我们手机上的chrome内核版本匹配。

做法
(1)手机启动开发者模式,然后在开发者选项中的 Android System WebView 可以查看chrome内核版本
(2)到:http://chromedriver.storage.googleapis.com/index.html

安装对应的chromedriver版本,如果你下载不是2.*开头的, 要非常精确!!!比如你的手机chrome内核版本需要76.0.3809.126版本的chromedriver,你下载76.0.3809.25版本的也不行,
最简单的办法是下载2.*开头的,涵盖了好几个版本的,总有一个适合的,但是2.开头的最多支持到chrome 73,(现在最新是78版本),所以要下载最新的,还是得一个版本一个版本找。

(3)下载好了之后,到相应的路径替换appium的chromedriver.exe (不要放多个版本,哪怕你重命名,appium会每个都扫描,执行哪个就不清楚了)
windows:C:\Users\Administrator\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win

ios:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac

配置就先讲到这里吧,接下来我想提几点在安装配置中常见的错误。


————————————————
参考链接:https://blog.csdn.net/gyh233333/article/details/103687225

原文地址:https://www.cnblogs.com/chenxiaomeng/p/15466629.html