python 自动化微信小程序_appium+python 微信小程序的自动化

前言

最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试?

今天写一篇小程序该如何做自动化测试,如何定位,具体以膜拜为例子

webview进程

1.小程序和微信公众号还不太一样,基本思路差不多,先配置:chromeOptions

'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}

2.androidProcess进程可以通过adb shell去查看,先点开摩拜小程序,然后进adb shell

进入shell后输入:dumpsys activity top | grep ACTIVITY

C:\Users\admin>adb shell

HWBND-H:/ $ dumpsys activity top | grep ACTIVITY

ACTIVITY com.tencent.mm/.plugin.appbrand.ui.AppBrandUI d0f2ff4 pid=7332

此时可以看到pid

然后输入:ps 7332

HWBND-H:/ $ ps 7332

USER PID PPID VSIZE RSS WCHAN PC NAME

u0_a119 7332 495 2706272 283720 0 0000000000 S com.tencent.mm:appbrand0

HWBND-H:/ $

3.com.tencent.mm:appbrand0 这个就是我们要找的东西

正式开始:

1. 下拉为微信聊天页面,出现摩拜小程序(显示最近使用的哦,你的可能是别的小程序)

L3Byb3h5L2h0dHBzL2ltZy1ibG9nLmNzZG5pbWcuY24vMjAxOTAxMDgxNTA1MzY3MjMucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHR5cGVfWm1GdVozcG9aVzVuYUdWcGRHayxzaGFkb3dfMTAsdGV4dF9hSFIwY0hNNkx5OWliRzluTG1OelpHNHVibVYwTDNobmFERTVOVEU9LHNpemVfMTYsY29sb3JfRkZGRkZGLHRfNzA=.jpg

怎样实现下拉滑动呢?使用driver的swipe方法,我这里用的是我封装好的滑动方法

#向下滑动

def swipe_down(driver,t=500,n=1):

s = driver.get_window_size()

x1 = s['width'] * 0.5 # x坐标

y1 = s['height'] * 0.25 # 起点y坐标

y2 = s['height'] * 0.75 # 终点y坐标

for i in range(n):

driver.swipe(x1,y1,x1,y2,t)

2. 点击摩拜小程序图标

# 点击膜拜单车

driver.find_element_by_id('com.tencent.mm:id/ij').click()

time.sleep(4)

print(driver.contexts)

3.点击右下角的小头像

由于这个页面是view.view属性所以不好用常用定位方法定位,只好用坐标来定位了!

L3Byb3h5L2h0dHBzL2ltZy1ibG9nLmNzZG5pbWcuY24vMjAxOTAxMDgxNTEwMzYxNDMucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2Uvd2F0ZXJtYXJrLHR5cGVfWm1GdVozcG9aVzVuYUdWcGRHayxzaGFkb3dfMTAsdGV4dF9hSFIwY0hNNkx5OWliRzluTG1OelpHNHVibVYwTDNobmFERTVOVEU9LHNpemVfMTYsY29sb3JfRkZGRkZGLHRfNzA=.jpg

# tap触摸右下角那个人头坐标

driver.tap([(972, 1613), (1034, 1622)], 1000) #tap的点必须是tuple类型,一个点是一个tuple

time.sleep(5)

print('进入我的页面')

4.点击钱包,这里也是利用坐标定位

# 点击我的钱包

driver.tap([(267, 907)], 500)

time.sleep(4)

print('进入钱包')

5.点击余额,这里利用xpath定位

# 点击余额

driver.find_element_by_xpath('//*[@text="余额"]').click()

time.sleep(4)

6.点击充值,利用xpath定位

# 点击充值

driver.find_element_by_xpath('//*[@text="充值"]').click()

time.sleep(2)

我就不充值了,因为太穷,这里基本就是一个进入小程序完成充值过程的一个自动化操作了,下面是完整的代码:

#coding:utf-8

from appium import webdriver

import time,os

from common.My_swipe import swipe_down

desired_caps = {

'platformName': 'Android',

'platformVersion': '8.0',

'deviceName': '740dc3d1',

'appPackage': 'com.tencent.mm',

'appActivity': '.ui.LauncherUI',

'automationName': 'Uiautomator2',

# 'unicodeKeyboard': True,

# 'resetKeyboard': True,

'noReset': True,

'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}

}

driver = webdriver.Remote(r'http://127.0.0.1:4723/wd/hub', desired_caps)

time.sleep(3)

# 向下滑动

swipe_down(driver)

time.sleep(2)

# 点击膜拜单车

driver.find_element_by_id('com.tencent.mm:id/ij').click()

time.sleep(4)

print(driver.contexts)

# tap触摸右下角那个人头坐标

driver.tap([(972, 1613), (1034, 1622)], 1000) #tap的点必须是tuple类型,一个点是一个tuple

time.sleep(5)

print('进入我的页面')

# 点击我的钱包

driver.tap([(267, 907)], 500)

time.sleep(4)

print('进入钱包')

# 点击余额

driver.find_element_by_xpath('//*[@text="余额"]').click()

time.sleep(4)

# 点击充值

driver.find_element_by_xpath('//*[@text="充值"]').click()

time.sleep(2)

#接下来就是摩拜的充值页面了,由于我太穷充不起,所以就介绍到这里

总结:其实这里只是介绍一个小程序自动化的大概思路吧,有疑问的可以加我qq 970185127 ,未完待续.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值