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