当前位置: 首页 > news >正文

dw怎么做网站标题图标做网站重庆

dw怎么做网站标题图标,做网站重庆,宁波哪里可以做网站,apicloud官网App自动化测试之Appium基础篇』| Desired Capabilities详解与使用 1 关于appium driver2 安装appium driver3 安装Appium Python Client4 安装测试对象5 获取测试对象信息5.1 使用dumpsys5.2 使用AndroidKiller5.3 使用aapt 6 Capabilities详解6.1 Capabilities介绍6.2 automat… App自动化测试之Appium基础篇』| Desired Capabilities详解与使用 1 关于appium driver2 安装appium driver3 安装Appium Python Client4 安装测试对象5 获取测试对象信息5.1 使用dumpsys5.2 使用AndroidKiller5.3 使用aapt 6 Capabilities详解6.1 Capabilities介绍6.2 automationName6.3 platformName6.4 platformVersion6.5 deviceName6.6 app6.7 newCommandTimeout6.8 noReset6.9 fullReset6.10 appPackage和appActivity 7 官方示例8 测试示例9 启动问题排查9.1 urllib3 v2.0 only supports OpenSSL 1.1.19.2 UnknownError: An unknown server-side error occurred 1 关于appium driver 在之前的文章我们已经完整的安装了appium以及安装过程中相关问题的排查我们启动下appium的服务看看 C:\Users\Administratorappium [Appium] Welcome to Appium v2.2.3 [Appium] Appium REST http interface listener started on http://0.0.0.0:4723 [Appium] You can provide the following URLs in your client code to connect to this server: [Appium] http://172.16.1.33:4723/ [Appium] http://127.0.0.1:4723/ (only accessible from the same host) [Appium] http://172.23.16.1:4723/ [Appium] No drivers have been installed in C:\Users\Administrator\.appium. Use the appium driver command to install the one(s) you want to use. [Appium] No plugins have been installed. Use the appium plugin command to install the one(s) you want to use.发现提示appium driver没有安装我们安装下吧appium driver测试驱动是分开管理的默认不会安装任何的测试驱动通过 appium driver 子命令管理所有的驱动官方可用的驱动如下 C:\Users\Administratorappium driver list- Listing available drivers ✔ Listing available drivers- uiautomator2 [not installed]- xcuitest [not installed]- mac2 [not installed]- espresso [not installed]- safari [not installed]- gecko [not installed]- chromium [not installed]我们的环境是Android所以需要安装下uiautomator2其他的按照情况来安装即可。 2 安装appium driver 我们使用以下appium driver install uiautomator2命令安装但是报错了 C:\Windows\System32appium driver install uiautomator2 - Installing uiautomator2 using NPM install spec appium-uiautomator2-driver × Installing uiautomator2 using NPM install spec appium-uiautomator2-driver Error: × Encountered an error when installing package: npm command install --save-dev --omitpeer --save-exact --global-style --no-package-lock appium-uiautomator2-driver --json failed with code 1.STDOUT: {error: {code: ETIMEDOUT,summary: request to https://registry.npmjs.org/appium-uiautomator2-driver failed, reason: ,detail: This is a problem related to network connectivity.\nIn most cases you are behind a proxy or have bad network settings.\n\nIf you are behind a proxy, please make sure that the\nproxy config is set properly. See: npm help config解决方法是修改npm的镜像源 # 1.查看npm镜像设置 npm config get registry # 2.将npm设置为淘宝镜像 npm config set registry https://registry.npm.taobao.org # 3.再次查看npm镜像设置 npm config get registry再次安装就成功了 C:\Windows\System32appium driver install uiautomator2- Installing uiautomator2 using NPM install spec appium-uiautomator2-driver √ Installing uiautomator2 using NPM install spec appium-uiautomator2-driver i Driver uiautomator22.34.2 successfully installed- automationName: UiAutomator2- platformNames: [Android]3 安装Appium Python Client Python Client针对不同的语言有不同的安装方法我们使用的python版本的关于appium的安装过程的步骤之前已经介绍也可参考管放文档Quickstart Intro安装Appium Python Client pip install Appium-Python-ClientSuccessfully built Appium-Python-Client Installing collected packages: sortedcontainers, urllib3, sniffio, pysocks, pycparser, idna, h11, certifi, attrs, wsproto, outcome, cffi, trio, trio-websocket, selenium, Appium-Python-Client Successfully installed Appium-Python-Client-3.1.0 attrs-23.1.0 certifi-2023.11.17 cffi-1.16.0 h11-0.14.0 idna-3.6 outcome-1.3.0.post0 pycparser-2.21 pysocks-1.7.1 selenium-4.16.0 sniffio-1.3.0 sortedcontainers-2.4.0 trio-0.23.1 trio-websocket-0.11.1 urllib3-2.1.0 wsproto-1.2.04 安装测试对象 下载一个支持安卓6.0的扣扣因为我们模拟器是安卓6.0的把下载的扣扣传到模拟器中本地保存在如下 F:\monkey_test\QQv5.apk我们先卸载之前装的 adb uninstall com.tencent.mobileqqiF:\monkey_testadb uninstall com.tencent.mobileqqi Success重新安装 adb install QQv5.apk /data/tempF:\monkey_testadb install QQv5.apk /data/temp Performing Push Install QQv5.apk: 1 file pushed, 0 skipped. 13.1 MB/s (22506899 bytes in 1.634s)pkg: /data/local/tmp/QQv5.apkver: /data/temp Success5 获取测试对象信息 以下有三种方式获取应用程序的信息我们需要获取的重要信息为当前app的包名和活动窗口名三种方式都可以选择自己方便的即可。 5.1 使用dumpsys 前提是需要先打开需要测试的app我们启动APP后在命令行输入 adb shell dumpsys | find mFocusedActivity可以看到如下 mFocusedActivity: ActivityRecord{54035c5 u0 com.tencent.mobileqqi/com.tencent.mobileqq.activity.InstallActivity t4}那么重要信息有两个 # 包名com.tencent.mobileqqi # 活动窗口名com.tencent.mobileqq.activity.LoginActivity5.2 使用AndroidKiller AndroidKiller主要是对apk进行反编译操作获取相关信息这里不说了自行搜索吧。 5.3 使用aapt 这个相对来说会方便点直接找到安装包的路径使用命令查看即可比如我的安装包在本地的F:\monkey_test下 aapt dump badging QQv5.apk查看的信息如下 F:\monkey_testaapt dump badging QQv5.apk package: namecom.tencent.mobileqqi versionCode6062 versionName5.1.1 install-location:auto sdkVersion:7 targetSdkVersion:15 uses-permission: namecom.android.launcher.permission.INSTALL_SHORTCUT uses-permission: nameandroid.permission.INTERNET uses-permission: nameandroid.permission.VIBRATE uses-permission: nameandroid.permission.ACCESS_NETWORK_STATE uses-permission: nameandroid.permission.CHANGE_CONFIGURATION uses-permission: nameandroid.permission.RECEIVE_BOOT_COMPLETED uses-permission: nameandroid.permission.WAKE_LOCK uses-permission: nameandroid.permission.SYSTEM_ALERT_WINDOW uses-permission: nameandroid.permission.RECORD_AUDIO uses-permission: namecom.tencent.msf.permission.account.sync uses-permission: nameandroid.permission.MODIFY_AUDIO_SETTINGS uses-permission: nameandroid.permission.CAMERA uses-permission: nameandroid.permission.CHANGE_WIFI_STATE uses-permission: nameandroid.permission.ACCESS_WIFI_STATE uses-permission: nameandroid.permission.READ_PHONE_STATE uses-permission: nameandroid.permission.KILL_BACKGROUND_PROCESSES uses-permission: nameandroid.permission.CALL_PHONE uses-permission: namecom.android.launcher.permission.READ_SETTINGS uses-permission: namecom.android.launcher.permission.UNINSTALL_SHORTCUT uses-permission: nameandroid.permission.PERSISTENT_ACTIVITY uses-permission: nameandroid.permission.WRITE_SETTINGS uses-permission: nameandroid.permission.SEND_SMS uses-permission: nameandroid.permission.READ_SMS uses-permission: nameandroid.permission.GET_TASKS uses-permission: namecom.tencent.permission.VIRUS_SCAN uses-permission: nameandroid.permission.READ_LOGS uses-permission: nameandroid.permission.READ_CONTACTS uses-permission: nameandroid.permission.FLASHLIGHT uses-permission: nameandroid.permission.BLUETOOTH uses-permission: nameandroid.permission.BLUETOOTH_ADMIN uses-permission: nameandroid.permission.BROADCAST_STICKY uses-permission: nameandroid.permission.WRITE_CONTACTS uses-permission: nameandroid.permission.WRITE_OWNER_DATA uses-permission: nameandroid.permission.SYSTEM_OVERLAY_WINDOW uses-permission: nameandroid.permission.CHANGE_NETWORK_STATE uses-permission: namecom.android.launcher.permission.WRITE_SETTINGS uses-permission: namecom.android.launcher3.permission.READ_SETTINGS uses-permission: namecom.android.launcher3.permission.WRITE_SETTINGS uses-permission: namecom.htc.launcher.permission.READ_SETTINGS uses-permission: namecom.htc.launcher.permission.WRITE_SETTINGS uses-permission: namecom.huawei.launcher3.permission.READ_SETTINGS uses-permission: namecom.google.android.launcher.permission.READ_SETTINGS uses-permission: namecom.google.android.launcher.permission.WRITE_SETTINGS uses-permission: nameandroid.permission.READ_CALENDAR uses-permission: nameandroid.permission.WRITE_CALENDAR uses-permission: namecom.sonyericsson.home.permission.BROADCAST_BADGE uses-permission: namecom.sec.android.provider.badge.permission.READ uses-permission: namecom.sec.android.provider.badge.permission.WRITE uses-permission: nameandroid.permission.GET_ACCOUNTS uses-permission: nameandroid.permission.MANAGE_ACCOUNTS uses-permission: nameandroid.permission.AUTHENTICATE_ACCOUNTS uses-permission: nameandroid.permission.WRITE_CONTACTS uses-permission: nameandroid.permission.READ_SYNC_SETTINGS uses-permission: nameandroid.permission.WRITE_SYNC_SETTINGS uses-permission: nameandroid.permission.DISABLE_KEYGUARD uses-permission: nameandroid.permission.CHANGE_WIFI_MULTICAST_STATE uses-permission: namecom.qq.qcloud.permission.ACCESS_ALBUM_BACKUP_LIST uses-permission: namecom.android.vending.BILLING uses-permission: nameandroid.permission.RESTART_PACKAGES uses-permission: nameandroid.permission.NFC application-label:QQi application-label-de:QQi application-label-es:QQi application-label-fr:QQi application-label-ja:QQi application-label-ko:QQi application-label-zh-CN:QQi application-label-zh-TW:QQi application-icon-120:R/m/hcw.png application-icon-160:R/m/hcw.png application-icon-240:R/m/hcw.png application-icon-320:R/m/hcw.png application-icon-480:R/m/hcw.png application-icon-65535:R/m/hcw.png application: labelQQi iconR/m/hcw.png launchable-activity: namecom.tencent.mobileqq.activity.SplashActivity labelQQi icon uses-library-not-required:com.google.android.media.effects uses-library-not-required:com.motorola.hardware.frontcamera uses-permission: namecom.tencent.photos.permission.DATA uses-permission: namecom.tencent.msf.permission.account.sync uses-permission: namecom.tencent.music.data.permission uses-permission: namecom.tencent.msf.permission.ACCOUNT_NOTICE uses-permission: nameandroid.permission.CHANGE_WIFI_STATE uses-permission: nameandroid.permission.INTERNET uses-permission: nameandroid.permission.ACCESS_WIFI_STATE uses-permission: nameandroid.permission.ACCESS_NETWORK_STATE uses-permission: nameandroid.permission.ACCESS_FINE_LOCATION uses-permission: nameandroid.permission.ACCESS_COARSE_LOCATION uses-permission: nameandroid.permission.CAMERA uses-permission: nameandroid.permission.READ_PHONE_STATE uses-permission: nameandroid.permission.WAKE_LOCK uses-permission: namecom.android.launcher.permission.INSTALL_SHORTCUT uses-permission: nameandroid.permission.WRITE_EXTERNAL_STORAGE uses-permission: nameandroid.permission.RECEIVE_BOOT_COMPLETED uses-permission: namecom.tencent.msg.permission.pushnotify uses-permission: namecom.tencent.msf.permission.account.sync uses-permission: nameandroid.permission.READ_EXTERNAL_STORAGE uses-implied-permission: nameandroid.permission.READ_EXTERNAL_STORAGE reasonrequested WRITE_EXTERNAL_STORAGE uses-permission: nameandroid.permission.READ_CALL_LOG uses-implied-permission: nameandroid.permission.READ_CALL_LOG reasontargetSdkVersion 16 and requested READ_CONTACTS uses-permission: nameandroid.permission.WRITE_CALL_LOG uses-implied-permission: nameandroid.permission.WRITE_CALL_LOG reasontargetSdkVersion 16 and requested WRITE_CONTACTS feature-group: labeluses-feature-not-required: nameandroid.hardware.camerauses-feature-not-required: nameandroid.hardware.camera.autofocususes-feature-not-required: nameandroid.hardware.locationuses-feature-not-required: nameandroid.hardware.location.gpsuses-feature-not-required: nameandroid.hardware.location.networkuses-feature-not-required: nameandroid.hardware.telephonyuses-feature: nameandroid.hardware.bluetoothuses-implied-feature: nameandroid.hardware.bluetooth reasonrequested android.permission.BLUETOOTH permission, requested android.permission.BLUETOOTH_ADMIN permission, and targetSdkVersion 4uses-feature: nameandroid.hardware.faketouchuses-implied-feature: nameandroid.hardware.faketouch reasondefault feature for all appsuses-feature: nameandroid.hardware.microphoneuses-implied-feature: nameandroid.hardware.microphone reasonrequested android.permission.RECORD_AUDIO permissionuses-feature: nameandroid.hardware.screen.portraituses-implied-feature: nameandroid.hardware.screen.portrait reasonone or more activities have specified a portrait orientationuses-feature: nameandroid.hardware.wifiuses-implied-feature: nameandroid.hardware.wifi reasonrequested android.permission.ACCESS_WIFI_STATE permission, requested android.permission.CHANGE_WIFI_MULTICAST_STATE permission, and requested android.permission.CHANGE_WIFI_STATE permission main other-activities other-receivers other-services supports-screens: small normal large xlarge supports-any-density: true locales: --_-- de es fr ja ko zh-CN zh-TW densities: 120 160 240 320 480 65535 native-code: armeabi需要的重要信息为 namecom.tencent.mobileqqilaunchable-activity: namecom.tencent.mobileqq.activity.SplashActivity如果aapt提示找不到命令需要把它的安装路径加入到系统环境变量中aapt的路径在 D:\android-sdk-windows\build-tools\29.0.36 Capabilities详解 6.1 Capabilities介绍 Capabilities是启动appium服务端的参数设置 关于Capabilities可以参考官方文档Appium capabilities 以下重点了解几个Capabilities参数。 6.2 automationName automationName表示自动化测试引擎好比测试驱动一样可供选择的有Appium、Selendriod、uiautomator2等本文及后续都使用的是uiautomator2。 6.3 platformName platformName表示手机或模拟器使用的操作系统一般包括iOS、Android等本文使用Android。 6.4 platformVersion platformVersion表示真机或模拟器操作系统的版本本文为Android6.0。 6.5 deviceName deviceName表示使用的测试设备类型可以使用adb devices查看设备类型名称 C:\Windows\System32adb devices List of devices attached emulator-5554 device比如我的是emulator-5554。 6.6 app app表示安装包如果指定这个参数就会把指定的app安装到指定的路径。 6.7 newCommandTimeout newCommandTimeout表示两条Appium命令间的最长时间间隔如果超时会自动退出app。 6.8 noReset noReset表示不需要在会话前重置应用状态默认为false。 6.9 fullReset fullReset可通过卸载而不清空数据来重置应用状态默认为false。 6.10 appPackage和appActivity 启动待测试app的appPackage和appActivityappPackage是app的包名appActivity是app的活动窗口名这两个参数的获取已经在第五章节说明了。 还有几个参数这个不一一说明了直接看官方文档即可。 7 官方示例 以下这个是官方的一个示例是python版本的 import unittest from appium import webdriver from appium.options.android import UiAutomator2Options from appium.webdriver.common.appiumby import AppiumBycapabilities dict(platformNameAndroid,automationNameuiautomator2,deviceNameAndroid,appPackagecom.android.settings,appActivity.Settings,languageen,localeUS )appium_server_url http://localhost:4723class TestAppium(unittest.TestCase):def setUp(self) - None:self.driver webdriver.Remote(appium_server_url, optionsUiAutomator2Options().load_capabilities(capabilities))def tearDown(self) - None:if self.driver:self.driver.quit()def test_find_battery(self) - None:el self.driver.find_element(byAppiumBy.XPATH, value//*[textBattery])el.click()if __name__ __main__:unittest.main()8 测试示例 这里我们写一个我们自己的测试示例之前我们已经安装了测试对象扣扣且已经获取到了它的相关信息我们启动appium服务直接在命令行输入appium即可 设计如下脚本 # -*- coding:utf-8 -*- # 作者虫无涯 # 日期2023/12/12 # 文件名称test_qq.py # 作用appium启动一个应用程序 # 联系VX(NoamaNelson) # 博客https://blog.csdn.net/NoamaNelsonfrom appium import webdriver from appium.options.android import UiAutomator2Options from appium.webdriver.common.appiumby import AppiumBy import timecapabilities dict(platformNameAndroid,automationNameuiautomator2,deviceNameemulator-5554,appPackagecom.tencent.mobileqqi,appActivitycom.tencent.mobileqq.activity.SplashActivity,languageen,localeUS )print(start....) # 创建driver对象 appium_server_url http://localhost:4723 driver webdriver.Remote(appium_server_url, optionsUiAutomator2Options().load_capabilities(capabilities))# 启动应用程 print(driver.capabilities) # driver.launch_app()time.sleep(1) print(已经连接到模拟器了~)driver.quit()执行脚本 D:\Python37\python.exe F:/python_study/appium_test/test_qq.py start.... {platformName: Android, automationName: uiautomator2, deviceName: emulator-5554, appPackage: com.tencent.mobileqqi, appActivity: com.tencent.mobileqq.activity.SplashActivity, language: en, locale: US, platform: LINUX, webStorageEnabled: False, takesScreenshot: True, javascriptEnabled: True, databaseEnabled: False, networkConnectionEnabled: True, locationContextEnabled: False, warnings: {}, desired: {platformName: Android, automationName: uiautomator2, deviceName: emulator-5554, appPackage: com.tencent.mobileqqi, appActivity: com.tencent.mobileqq.activity.SplashActivity, language: en, locale: US}, deviceUDID: emulator-5554, pixelRatio: 2, statBarHeight: 48, viewportRect: {left: 0, top: 48, width: 768, height: 1136}, deviceApiLevel: 23, platformVersion: 6.0, deviceManufacturer: unknown, deviceModel: sdk_phone_armv7, deviceScreenSize: 768x1280, deviceScreenDensity: 320} 已经连接到模拟器了~这时候appium的服务端也给出了启动信息 [AndroidUiautomator2Driver455c (f190abfc)] Proxying [DELETE /] to [DELETE http://127.0.0.1:8200/session/f9cc13f6-4c4e-4ab5-a2eb-8dfb44f05100] with no body [AndroidUiautomator2Driver455c (f190abfc)] Got response with status 200: {sessionId:f9cc13f6-4c4e-4ab5-a2eb-8dfb44f05100,value:null} [ADB] Running D:\android-sdk-windows\platform-tools\adb.exe -P 5037 -s emulator-5554 shell am force-stop com.tencent.mobileqqi [Instrumentation] . [Instrumentation] Time: 74.226 [Instrumentation] [Instrumentation] OK (1 test)同时模拟器中也打开了扣扣应用程序。 9 启动问题排查 9.1 urllib3 v2.0 only supports OpenSSL 1.1.1 如果启动过程出现这个错误 DEPRECATION: celery 5.0.5 has a non-standard dependency specifier pytzdev. pip 24.0 will enforce this behaviour change. A possible replacement is to upgrade to a newer version of celery or contact the author to suggest that they release a version with a conforming dependency specifiers. Discussion can be found at https://github.com/pypa/pip/issues/12063则说明Python 环境使用的是 OpenSSL 1.1.0h而 urllib3 v2.0 需要使用 OpenSSL 1.1.1解决方法是 # 要么升级 OpenSSL 到 1.1.1 或更高版本。 # 要么降级 urllib3 到 v1.x 版本可以通过命令 pip install urllib31.* 来实现。本文使用降级 urllib3来解决的但是可能会导致其他依赖包问题。 pip install urllib31.26.159.2 UnknownError: An unknown server-side error occurred 如果出现以下错误 UnknownError: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: Command D:\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s emulator-5554 shell pm install -r /data/local/tmp/appium_cache/72200c7819db015d5717d05800401c19b35842d5.apk timed out after 20000ms. Try to increase the 20000ms adb execution timeout represented by uiautomator2ServerInstallTimeout capability说明adb安装appium服务的时候报错解决方法是先卸载 adb uninstall /data/local/tmp/appium_cache/72200c7819db015d5717d05800401c19b35842d5.apk再原样使用命令安装即可 adb -P 5037 -s emulator-5554 shell pm install -r /data/local/tmp/appium_cache/72200c7819db015d5717d05800401c19b35842d5.apk
http://www.w-s-a.com/news/879255/

相关文章:

  • 机场建设相关网站公司官网设计制作
  • 大学网站建设的目标技术支持 优府网络太原网站建设
  • wordpress设置密码访问带提示广州做网站优化哪家专业
  • 如何帮人做网站赚钱西安室内设计公司排名
  • 房产网站建设产品网站域名和邮箱域名
  • 网站建设核心优势seo求职信息
  • 网站手册自己在百度上可以做网站吗
  • 影楼网站源码建行业网站的必要性
  • 深圳app网站设计软件开发公司税收优惠政策
  • 北京市中关村有哪家可以做网站维护客户管理系统 wordpress
  • 做网站拉客户有效吗全景图网页制作工具
  • 网站建设公司行业建设网站需要提供什么资料
  • 别人的做网站网页打不开图片
  • 北京专业网站设计推荐怎么建立网站网址
  • 上海网站建设开发公司哪家好网站数据搬家
  • 杭州建站平台哪里有免费的网站推广软件
  • 深圳极速网站建设服务什么网站可以做产品入驻
  • 淄博易宝网站建设app推广拉新公司
  • 营销型外贸网站建设软件备案域名出租
  • 网站域名禁止续费m99ww094cn 苍井空做的网站
  • 上海建设工程网站大同网站建设熊掌号
  • 设计类书籍网站江苏网站建设简介模板
  • 手机企业网站推广c 手机app开发
  • 网站建设需要多少天凡客建设网站稳定吗
  • 房天下网站建设女生说wap是什么意思
  • 网站开发安全机制北京做网站多少钱合理
  • 扁平化 公司网站建设大型视频网站需要的资金量
  • 免费建各种网站淄博网站建设yx718
  • 凡科网建站入门教程运城市网站建设
  • 黄浦区未成年人思想道德建设网站oa系统是什么