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

东莞做网站需要多少钱如何开发网站平台

东莞做网站需要多少钱,如何开发网站平台,天水建设银行网站,深圳网站设计灵点网络公司不错浅尝Appium自动化框架 Appium自动化框架介绍Appium原理Appium使用安装平台驱动实战 坑 Appium自动化框架介绍 Appium 是一个开源的自动化测试框架,最初设计用于移动应用的测试,但现在它也扩展了对桌面端应用的支持。Appium 使得自动化测试变得更加简单&…

浅尝Appium自动化框架

  • Appium自动化框架介绍
  • Appium原理
  • Appium使用
    • 安装平台驱动
    • 实战

Appium自动化框架介绍

Appium 是一个开源的自动化测试框架,最初设计用于移动应用的测试,但现在它也扩展了对桌面端应用的支持。Appium 使得自动化测试变得更加简单,并且支持跨平台,能够同时对 iOS、Android、Windows 和 macOS 平台上的应用进行自动化测试。
不同于Selenium只是用来自动化测试web程序,Appium可以自动化测试各个平台的原生应用。
👉👉👉官网

Appium原理

+------------------+
|  Test Scripts    |
|  (Java, Python,  |
|  JavaScript)     |
+--------+---------+|v
+--------+---------+
|  Appium Server   |
|  (HTTP Server)   |
+--------+---------+|+------------------------------+------------------------------------+|                   |                  |                    |v                   v                  v                    v
+------------+   +-------------+     +--------------+   +--------------+
| iOSDriver |   | AndroidDriver |   | WindowsDriver |   | macOSDriver  |
|  XCUITest |   | (UIAutomator) |   | (WinAppDriver)|   | (macOSDriver)|
+------------+   +-------------+     +--------------+   +--------------+|                |                   |                  |
+------------+   +-------------+     +--------------+   +--------------+
| iOS App |      | Android App|      | Windows App|      | macOS App |
+------------+   +-------------+     +--------------+   +--------------+
  • Test Scripts
    测试脚本可以使用不同编程语言编写,如 Java、Python 或 JavaScript,向 Appium Server 发送 HTTP 请求。
  • Appium Server
    Appium Server 是一个 HTTP 服务器,负责接收客户端的请求,并将请求转发给相应的平台驱动程序。
  • 平台驱动
    iOSDriver: 用于 iOS 平台,支持通过 XCUITest 或 UIAutomation 与 iOS 设备交互。
    AndroidDriver: 用于 Android 平台,支持通过 UIAutomator 或 Espresso 与 Android 设备交互。
    WindowsDriver (WinAppDriver): 用于 Windows 平台,支持通过 WinAppDriver 进行桌面应用的自动化测试。
    macOSDriver: 用于 macOS 平台,支持通过 macOSDriver 进行桌面应用的自动化测试。
  • 应用
    驱动程序与设备或模拟器上的应用进行交互,执行各种操作,如启动应用、查找元素、点击、输入等。

Appium使用

安装平台驱动

驱动平台适用场景
uiautomator2Android原生 Android 应用自动化
xcuitestiOS原生 iOS 应用自动化
espressoAndroid适用于使用 espresso 框架的 Android 应用
mac2macOSmacOS 应用自动化(桌面应用)
windowsWindowsWindows 应用自动化(桌面应用)
safariiOSiOS Safari 浏览器自动化
geckoAndroid, iOSFirefox 浏览器自动化
chromiumAndroid, macOS, WindowsChromium 浏览器自动化(包括 Chrome)

比如:
安装mac驱动

appium driver install mac2

安装后可以用如下命令看是否安装成功。

appium driver list --installed

实战

玩了2天,发现Appium对mac和win上的桌面应用支持的并不是太好,至少兼容性一般。后面我就转到测试android手机上的应用。写了小demo玩玩,打开QQ,找到某某人,发送特定消息。

import timefrom appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy# Desired Capabilities 配置
desired_caps = dict(platformName="Android",platformVersion="14",deviceName="RFCT20EGLNJ",automationName="UiAutomator2",appPackage="com.tencent.mobileqq",appActivity="com.tencent.mobileqq.activity.SplashActivity",enforceXPath1=True,noReset=True
)# 连接 Appium Server
driver = webdriver.Remote("http://127.0.0.1:4723", options = UiAutomator2Options().load_capabilities(desired_caps))try:# 等待并点击搜索按钮search_button = driver.find_element(AppiumBy.ID, "com.tencent.mobileqq:id/wwk")search_button.click()time.sleep(2)# 等待搜索输入框并输入 QQ 号码search_layout = driver.find_element(AppiumBy.ID, "com.tencent.mobileqq:id/jo9")location = search_layout.locationsize = search_layout.size# 点击搜索框(聚焦)driver.tap([(location['x'] + size['width'] / 2, location['y'] + size['height'] / 2)], 500)# 输入qq号码driver.press_keycode(16)driver.press_keycode(10)driver.press_keycode(9)driver.press_keycode(16)# 点击qq用户user_list_layout = driver.find_element(AppiumBy.XPATH, '(//android.widget.LinearLayout[@resource-id="com.tencent.mobileqq:id/ecl"])[1]')# user_button = user_list_layout.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'text("freedom-studio")')   # 可以定位,精确匹配user_button = user_list_layout.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().textContains("freedom")') # 可以定位,模糊匹配# user_button = user_list_layout.find_element(AppiumBy.XPATH, './/*[contains(text(), "freedom")]')     # 无法定位user_button.click()time.sleep(2)# 找到聊天输入框msg_input = driver.find_element(AppiumBy.ID, 'com.tencent.mobileqq:id/input')msg_input.send_keys("hello")# 找到发送按钮send_button = driver.find_element(AppiumBy.ID, 'com.tencent.mobileqq:id/send_btn')send_button.click()print("Message sent successfully!")finally:# 退出会话driver.quit()

期间要用到Appium Inspector这个工具,就是用来定位元素的。
在这里插入图片描述
记得要先安装adb工具哦。
其中,
appium:deviceName(设备名)可以通过adb devices获取。

adb devices

appium:appPackage(应用包名)和appium:appActivity(应用界面)可以通过如下adb命令获取。

adb shell dumpsys window | grep "mCurrentFocus"

在这里插入图片描述
最右边的Selected Element里就有xpath,id等信息。如果没有也别感到意外,那就是没有,只能通过其他方法定位元素了。

比如代码里的

# user_button = user_list_layout.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'text("freedom-studio")')   # 可以定位,精确匹配
user_button = user_list_layout.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().textContains("freedom")') # 可以定位,模糊匹配
# user_button = user_list_layout.find_element(AppiumBy.XPATH, './/*[contains(text(), "freedom")]')     # 无法定位

理论上,从Appium Inspector里看结构很清晰,XPath肯定是可以定位到的,但是实际就是不行,那只能试试其他方法了,比如AppiumBy.ANDROID_UIAUTOMATOR。

玩Appium也遇到不少坑。

  1. Appium对桌面应用程序支持的并不是非常好,主要还是用来做手机应用的自动化。比如在mac或者win上Appium Inspector经常无法定位特定元素。
  2. 我们一般使用ID, XPath来定位元素,但是有时候定位不到,那也只能另辟蹊径,比如用位置坐标来定位,再比如用ANDROID_UIAUTOMATOR等等。
  3. 测试设备是要和启动appium server的机器连接在一起的。
http://www.zhongyajixie.com/news/12531.html

相关文章:

  • 河北建设厅身份认证锁登录网站快速将网站seo
  • 广州网站排名专业乐云seo游戏推广引流软件
  • 淮北论坛官网衡水seo优化
  • 网站怎样做货到付款代发qq群发广告推广
  • 全国门户网站有哪些腾讯企业qq官网
  • 单品网站怎么建设竞价托管哪家便宜
  • 现在建网站多少钱服务器域名怎么注册
  • wordpress user meta电池优化大师下载
  • 电子商务平台网站开发海南百度总代理
  • wordpress更换子域名新站seo外包
  • 只有网站才需要域名吗百度关键词seo推广
  • 点击图片直接进入网站怎么做百度竞价怎么收费
  • wordpress如何修改电子邮箱首页优化公司
  • 网站首页的head标签内百度统计app
  • 大连零基础网站建设教学联系电话营销策划案例
  • 坊网站建设百度首页排名优化价格
  • 可以网上做单的网站有哪些免费网页制作网站
  • 网站 数据库轻松seo优化排名 快排
  • 搭建发卡网站要多少钱aso优化平台有哪些
  • 苹果手机网站建设软件百度官网客服
  • 开封市城乡建设局网站快速优化seo软件
  • b2b网站建设方案长沙赣州seo排名
  • 免费建站的网站能做影视网站吗软文素材库
  • 高密做网站哪家强代理西安优化seo
  • 丹东商城网站建设微软优化大师
  • 网站制作相关知识seo优化软件购买
  • 降龙网络专业做网站输入关键词自动生成标题
  • 天眼查 个人查询郑州网络优化实力乐云seo
  • wordpress插件使用数量河北网站seo外包
  • wap网站服务器万秀服务不错的seo推广