本文主要讲解一下使用appium操作微信小程序的流程
要使用appium进行自动化第一步当然是配置好appium环境,这块我就不在这里细讲了,直接开始吧;
ps:新版微信不再需要手动开启X5内核了

1、配置desired_capabilities

  1. 要操作微信小程序,则需要先进入到微信小程序
  2. 要先查看微信webview使用谷歌驱动版本然后进行配置
    谷歌驱动版本可以利用edge浏览器的工具(edge://inspect/#devices)进行查看
    只要使用adb工具连上手机后,打开对应的小程序页面就能在浏览器中查看到如下信息
    具体配置如下,可根据个人需要进行修改
capability:
    # 设备操作系统
    "platformName": "Android"
    # 设备名称(随意填写)
    "deviceName": "HuaWeiP30"
    # 应用程序的包名  
    "appPackage": "com.tencent.mm"
    # 应用程序的启动页面
    "appActivity": ".ui.LauncherUI"
    # 不重置app
    "noReset": "true"
    # 设置谷歌驱动地址
    "chromedriverExecutable": "G:\\chromedriver\\chromedriver_86\\chromedriver.exe"

2、启动微信并进入小程序页面

前提: appium服务已启动、手机或模拟器已连接上(adb devices 中能查看到)

from appium import webdriver
	def init_app(self):
		"""初始化appium驱动"""
		# capability是第一步定义好的
	   caps = cap_conf['capability']
	   driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", self.caps)
	   driver.implicitly_wait(10)
    def into_mini_main_page(self):
       进入小程序首页
       # 进入小程序的方式很多,可以根据自己的需要进行操作  find_and_click是我自己封装的方法
       self.find_and_click(MobileBy.XPATH, "//*[@text='发现']") \
           .find_and_click(MobileBy.XPATH, "//*[@text='小程序']") \
           .find_and_click(MobileBy.XPATH, "//*[@text='京东购物']")

操作到以上步骤后再查看edge浏览器inspect工具应该就能看到如下图的页面
说明微信已经切到小程序页面了,我们程序也要切到对应webview页面:

# 切到对应的context    driver.contexts可以拿到所有context
  self.driver.switch_to.context('WEBVIEW_com.tencent.mm:appbrand0')
  # 在上面页面可以看到有多个页面 我们还需要切到对应的页面中
  for window in self.driver.window_handles:
       self.driver.switch_to.window(window)
       if  ':VISIBLE' in self.driver.title:
           break

执行完以上步骤就已经进入到了微信小程序页面了

3、进行小程序页面定位

在inspect工具中点击对应页面的inspect的按钮,就可以进入到对应的页面进行定位

	ele = driver.find_element(By.XPATH, "//*[text()='京东超市']")
	ele.click()
    # 这里要注意一定要且换到当前展示的页面!!
    for window in self.driver.window_handles:
         self.driver.switch_to.window(window)
         if  'https://h5.m.jd.com' in self.driver.title:
             break
    # 切换进来后就可以对京东超市页面进行定位 

以上就是小程序的一些关键步骤,剩下的就和正常的UI自动化类似了,这里就不再介绍了;接下来大家就可以根据PO思想封装一套框架,最好是web、app、小程序能共用。

在每次发布新版本之前,都需要回归核心功能,以确保上线后小程序也能按照预期运行。 目前这部分回归工作是由测试同事手工去验证测试用例,按照每周一版本的迭代节奏,回归就花了测试挺多时间的。 最近前端工作比较轻松,所以在思考能否把这部分重复的工作交给程序自动来进行呢?省时省力。
H5 是指第 5 代 HTML ,也指用 H5 语言制作的一切数字产品。 所谓 HTML 是“超文本标记语言”的英文缩写。我们上网所看到网页,多数都是由 HTML 写成的。 “超文本”是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。而“标记”指的是 这些超文本必须由包含属性的开头与结尾标志来标记。浏览器通过解码 HTML ,就可以把网页内 容显示出来,它也构成了互联网兴起的基础。...
Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语言。 Appium 封装了 Selenium,能够为用户提供所有常见的 JSON 格式的 Selenium 命令以及额外的移动设备相关的控制命令,比如:多点触控手势、屏幕朝向等。 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类 微信小程序作为现在流行的一种应用载体,很多小伙伴都有对其做自动化测试的需求,由于腾讯系 QQ、微信等是基于腾讯自研 X5 内核,不是谷歌原生 webview,所以调试会有些许差异(现在很多 app 产品也开始流行采用 X5 内核作为其内嵌 Web 浏览服务)。 需要注意的是 X5 内核只支持手机,模拟器是不支持的。 我们的教程以最主流的 Appium 自动化技术为例讲解如何对微信小程序自动化测试。 step1:打开微信小程序 webview 调试开关 聊天窗口输入如下两个 URL: