zoukankan      html  css  js  c++  java
  • appium+python 微信小程序的自动化

    sudo kill -9 $(lsof -i:8889 -t)

     

    mitmweb -p 8889 -s addons.py

     

    mitmdump -q  -p 8889 -s addons.py

    http://appium.io/docs/en/writing-running-appium/caps/ 

    adb logcat -v time  | grep `adb shell ps | grep com.tencent.mm.appbrand0 | cut -c10-15`   >/home/androidlog.txt

     

    uiautomatorviewer

    !!!! WARNING: You are on OS X 10.11 El Capitan or greater, you may need to add the

    !!!! WARNING:   `--unsafe-perm=true` flag when running `npm install`

    !!!! WARNING:   or else it will fail.

     

    ===

    安装macna问题

    npm i -g macaca-ios --unsafe-perm=true

     

    appium

     

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

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/xgh1951/article/details/86076582

    前言

    最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试?
    今天写一篇小程序该如何做自动化测试,如何定位,具体以膜拜为例子

    webview进程

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

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

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

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

    1.  
      C:Usersadmin>adb shell
    2.  
      HWBND-H:/ $ dumpsys activity top | grep ACTIVITY
    3.  
      ACTIVITY com.tencent.mm/.plugin.appbrand.ui.AppBrandUI d0f2ff4 pid=7332

    此时可以看到pid

    然后输入:ps 7332

    1.  
      HWBND-H:/ $ ps 7332
    2.  
      USER PID PPID VSIZE RSS WCHAN PC NAME
    3.  
      u0_a119 7332 495 2706272 283720 0 0000000000 S com.tencent.mm:appbrand0
    4.  
      HWBND-H:/ $

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

    正式开始:

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

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

    1.  
      #向下滑动
    2.  
      def swipe_down(driver,t=500,n=1):
    3.  
      s = driver.get_window_size()
    4.  
      x1 = s['width'] * 0.5 # x坐标
    5.  
      y1 = s['height'] * 0.25 # 起点y坐标
    6.  
      y2 = s['height'] * 0.75 # 终点y坐标
    7.  
      for i in range(n):
    8.  
      driver.swipe(x1,y1,x1,y2,t)

     2. 点击摩拜小程序图标

    1.  
      # 点击膜拜单车
    2.  
      driver.find_element_by_id('com.tencent.mm:id/ij').click()
    3.  
      time.sleep(4)
    4.  
      print(driver.contexts)

    3.点击右下角的小头像

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

    1.  
      # tap触摸右下角那个人头坐标
    2.  
      driver.tap([(972, 1613), (1034, 1622)], 1000) #tap的点必须是tuple类型,一个点是一个tuple
    3.  
      time.sleep(5)
    4.  
      print('进入我的页面')

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

    1.  
      # 点击我的钱包
    2.  
      driver.tap([(267, 907)], 500)
    3.  
      time.sleep(4)
    4.  
      print('进入钱包')

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

    1.  
      # 点击余额
    2.  
      driver.find_element_by_xpath('//*[@text="余额"]').click()
    3.  
      time.sleep(4)

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

    1.  
      # 点击充值
    2.  
      driver.find_element_by_xpath('//*[@text="充值"]').click()
    3.  
      time.sleep(2)

     

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

    1.  
      #coding:utf-8
    2.  
      from appium import webdriver
    3.  
      import time,os
    4.  
      from common.My_swipe import swipe_down
    5.  
       
    6.  
       
    7.  
      desired_caps = {
    8.  
      'platformName': 'Android',
    9.  
      'platformVersion': '8.0',
    10.  
      'deviceName': '740dc3d1',
    11.  
      'appPackage': 'com.tencent.mm',
    12.  
      'appActivity': '.ui.LauncherUI',
    13.  
      'automationName': 'Uiautomator2',
    14.  
      # 'unicodeKeyboard': True,
    15.  
      # 'resetKeyboard': True,
    16.  
      'noReset': True,
    17.  
      'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
    18.  
      }
    19.  
      driver = webdriver.Remote(r'http://127.0.0.1:4723/wd/hub', desired_caps)
    20.  
      time.sleep(3)
    21.  
      # 向下滑动
    22.  
      swipe_down(driver)
    23.  
      time.sleep(2)
    24.  
       
    25.  
      # 点击膜拜单车
    26.  
      driver.find_element_by_id('com.tencent.mm:id/ij').click()
    27.  
      time.sleep(4)
    28.  
      print(driver.contexts)
    29.  
       
    30.  
      # tap触摸右下角那个人头坐标
    31.  
      driver.tap([(972, 1613), (1034, 1622)], 1000) #tap的点必须是tuple类型,一个点是一个tuple
    32.  
      time.sleep(5)
    33.  
      print('进入我的页面')
    34.  
      # 点击我的钱包
    35.  
      driver.tap([(267, 907)], 500)
    36.  
      time.sleep(4)
    37.  
      print('进入钱包')
    38.  
      # 点击余额
    39.  
      driver.find_element_by_xpath('//*[@text="余额"]').click()
    40.  
      time.sleep(4)
    41.  
       
    42.  
      # 点击充值
    43.  
      driver.find_element_by_xpath('//*[@text="充值"]').click()
    44.  
      time.sleep(2)
    45.  
      #接下来就是摩拜的充值页面了,由于我太穷充不起,所以就介绍到这里

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

  • 相关阅读:
    redis 下载安装
    Docker之网络
    容器与镜像
    Docker之容器
    Docker之镜像
    在安装完windows和linux双系统后,删除BIOS中的引导启动项在Window下
    Ububtu 18.04中如何在火狐浏览器中安装flash插件
    lambda 表达式
    IDEA DeBug mode
    spring 系统启动加载的类
  • 原文地址:https://www.cnblogs.com/showker/p/11567965.html
Copyright © 2011-2022 走看看