APP自动化_混合App自动化理论相关

原理:本质是混合app,应该用切入webview的方法去自动化web页面。
现状:目前由于技术原因无法切到webview中做自动化。
方案:采用原生app自动方法来自动化小程序。

1、mini_config.py 配置文件内容

desired_caps = {# 平台"platformName": "Android","platformVersion": "11","deviceName": "Redmi Note 11 Pro",# 目标app信息--微信--从微信打开小程序'appActivity': '.ui.LauncherUI','appPackage': 'com.tencent.mm',# 设置命令超时时间'newCommandTimeout': 6000,# 确保自动化之后不重置app'noReset': True,# 底层驱动'automationName': 'UiAutomator2',# 如果不想每次都安装UI2驱动,可以这么设置# 'skipServerInstallation':True,# 修改手机的输入法,UI2不需要设置# 'unicodeKeyboard':True,# 自动化结束之后将输入法还原-概率性# 'resetKeyboard':True
}xiaomi_caps = desired_caps.copy()
huawei_caps = desired_caps.copy()xiaomi_caps['platformVersion'] = '11'
xiaomi_caps['deviceName'] = 'iruov8yt8hifcyjn'
xiaomi_caps['systemPort'] = '4723'huawei_caps['platformVersion'] = '11'
huawei_caps['deviceName'] = 'iruov8yt8hifcyjn'
huawei_caps['systemPort'] = '8246'

2、操作微信小程序实现自动化_多终端并行 演示

import os
import time
import pytest
from appium import webdriver
from day6_小程序.mini_config import *def open_session(port, caps):"""初始化应用:param port::param caps::return:"""global driver# 初始化driver对象-用于控制手机-启动被测应用(微信)# IP-appium-server所在机器的网络ip,port-监听的端口号,path固定/wd/hubdriver = webdriver.Remote(f'http://localhost:{port}/wd/hub', caps)driver.implicitly_wait(15)def close_session():"""清理应用:return:"""global driverdriver.quit()def swipe_screen(distance):"""滑动屏幕向上滑动:滑动距离为负数,反之为正数,起点为屏幕中心点:param distance::return:"""size = driver.get_window_size()pos_x = size['width'] / 2pos_y = size['height'] / 2driver.swipe(pos_x, pos_y, pos_x, pos_y + distance)def open_miniprogram(name):"""打开小程序:param name::return:"""global driver# 先等待目标页面出现driver.find_element_by_xpath('//*[@text="微信"]')# 下拉size = driver.get_window_size()distance = size['height'] / 2-10# 向下距离为正数swipe_screen(distance)time.sleep(1)# 点击搜索框driver.find_element_by_id('com.tencent.mm:id/r8').click()# 输入关键字namedriver.find_element_by_id('com.tencent.mm:id/bhn').send_keys(name)# 点击搜索结果driver.find_element_by_xpath('//*[@resource-id="app"]//android.view.View[@text="拼多多"]').click()time.sleep(1.5)# # 点击 ENTER# driver.keyevent(66)# # 选择第一个结果# res = driver.find_elements_by_xpath(#     '//*[@resource-id="app"]/android.view.View[2]/android.view.View[2]/android.view.View[1]/android.widget.Button[1]')# if res:#     res[0].click()def select_items(item):"""挑选商品+提交订单:param item::return:"""# 点击 限时秒杀driver.find_element_by_xpath('//*[@text="xxx"]').click()# 等待进入商品购买页element = driver.find_element_by_xpath('//*[@text="限时秒杀"]')assert element.text == '限时秒杀'# 滑动页面driver.implicitly_wait(0.5)size = driver.get_window_size()distance2 = -(size['height'] / 8)while 1:# 寻找1个商品eles = driver.find_elements_by_xpath(f'//*[@text="{item}"]')if eles:print('找到目标商品')# 点击加号driver.find_element_by_xpath(f'//*[@text="{item}"]/../../following-sibling::android.view.View').click()breakswipe_screen(distance2)driver.implicitly_wait(15)# 检查商品对应购物栏数字goods_num = driver.find_element_by_xpath(f'//*[@text="{item}"]/../../following-sibling::android.view.View/android.view.View/*/*').textprint('当前商品数量: %s' % goods_num)# 点击购买driver.find_element_by_xpath('//*[@text="购买礼物"]').click()# 检查进入选择支付方式driver.find_element_by_xpath('//*[@text="选择支付方式"]')# 支付金额查看res = driver.find_element_by_xpath('//*[contains(@text,"洗碗布")]').textprint(res)# # 单设备
# def setup():
#     """
#     给初始化加上启动参数
#     :return:
#     """
#     # 单设备
#     open_session('4723', xiaomi_caps)# 多设备
@pytest.fixture(params=[('4723', xiaomi_caps), ('4725', huawei_caps)])
def setup(request):"""给初始化加上启动参数:return:"""port = request.param[0]cpas = request.param[1]open_session(port, cpas)yieldteardown()def teardown():"""清除:return:"""close_session()def test_miniprogram():open_miniprogram('拼多多')select_items('洗碗布')if __name__ == '__main__':# 提前装好pytest-xdist插件: pip install pytest-xdist# -n 2表示用两个进程启动测试脚本,因为该测试有两组参数。# 单设备# pytest.main(['1_手机WEB页面自动化_操作微信小程序实现自动化_多终端并行.py', '-s'])# 多设备pytest.main(['1_手机WEB页面自动化_操作微信小程序实现自动化_多终端并行.py', '-s', '-n 2', '--alluredir=tmp/my_allure_results'])# os.system(f'allure serve tmp/my_allure_results')

APP自动化_操作微信小程序/H5页面实现自动化_多终端并行相关推荐

  1. Web端(微信小程序)H5+java+selenium自动化

    前置步骤,创建工程(可以testng或普通工程),这里默认是创建的testng工程,前面文章中有讲如何配置好testng工程 当前很多微信小程序都是H5实现,这章主要是讲如何测试H5自动化. 直接上代 ...

  2. 微信小程序H5页面API红包代发接口

    开发者在日常涉及到给小程序.H5等应用嵌入微信红包时,有一个坎是必须要迈过的,那就是需要有一个具备红包发放权限的商户号,但因相关权限准入门槛过高,短时间内无法取得相关权限,所以很是让开发者为难,那么有 ...

  3. 微信小程序h5页面分享设置

    前言(废话): 最近开发新项目,因为公司希望能在开发完h5后顺便吧微信小程序也上了,但是人力有限,只能做到h5,开发小程序压根做不到,只能投机了, 我真是个机灵鬼... 然后我就看API,咦,贼拉简单 ...

  4. 微信小程序获取页面元素高度_微信小程序之动态获取元素宽高

    我以前一直以为微信小程序不能动态获取view元素的宽高.但是自从看到: wx.createSelectorQuery() 这个api接口,以前的某些问题就能得到解决了... 那么,这个api接口怎么用 ...

  5. PHP开发B2C商城 微信小程序商城系统源码+数据库,轻量级前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP

    项目介绍 一款轻量级.高性能.前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP,前后端源码完全开源,看见及所得,完美支持二次开发,可学习可商用,让您快速搭建个性化独立商城. 完整代 ...

  6. python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...

  7. 微信小程序商店 | 即速商店_福利类小程序

    即速应用商店_分类最齐全的小程序商店,收录当前最新最热门小程序,汇集各行业小程序案例及评测,在这里可以轻松找到各种实用好玩的小程序,也可免费发布 自己的小程序获取巨大流量 . PS:关于微信小程序商店 ...

  8. 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...

  9. APP 抓包和微信小程序抓包-Charles 的精简使用教程

    APP 抓包和微信小程序抓包-Charles 的精简使用教程 2021-09-25 更新 2019-07-10 更新 目标 教程 一.安装 Charles 二.Charles 简介 (1)Charle ...

最新文章

  1. 一个电脑的重装到java开发环境安装配置的全过程
  2. mysql的ps.setmaxrows_mysql自定义函数实现表的指定列进行数据脱敏(PS:来自mysql小白的提问)...
  3. Android camera 开发(10)---Camera 硬件介绍
  4. 有人表面上是苹果CEO,背地里却是清华经管学院顾问委员会主席
  5. java swf 上传文件_[Pulgin] 利用swfupload实现java文件批量上传
  6. Error:Expected linebreaks to be ‘LF‘ but found ‘CRLF‘ linebreak-style
  7. 这是今年前端最常见的面试题,你都会了吗?
  8. python turtle原点位置_python中turtle库中setworldcoordinates(坐标系的移动)
  9. vb实现随机生成100个整数,将其中的奇数由大到小排序,偶数由小到大排序,找出其中所有素数并求和
  10. c语言设计一个酒店管理系统,C语言酒店管理系统设计.docx
  11. 乐高wedo2.0电脑软件安装及蓝牙连接方法
  12. 002HTML常用标签
  13. 基于压缩传感的脉冲GPR成像技术研究(硕士学位论文初稿20120104)
  14. 基于MATLAB/Simulink的电力电子电路仿真技术——三相电流滞环跟踪逆变器
  15. The Sultan's Successors (八皇后)
  16. MFC二叉树可视化绘制 (C++)—— 插入、删除、先序遍历、中序遍历、后序遍历、层序遍历(基于平衡二叉树实现)
  17. [渝粤教育] 天水师范学院 地球科学概论 参考 资料
  18. 本科生毕业论文是否需要写得很深入
  19. AlexNet论文精读
  20. 机构偏爱的选股指标——OBV能量潮新篇

热门文章

  1. latex公式正体和斜体
  2. 采用计算机进行图像处理的公司,计算机网页设计图像处理技术应用
  3. Linux NVMe Driver学习笔记之5:Admin SQ/CQ的创建
  4. 漫谈图形引擎中的材质系统
  5. 内蒙古专升本考试常见问题汇总
  6. 我的无线DIY设计—基于STM32WB55_NUCLEO​的遥控小车
  7. 小作坊式项目开发(三)
  8. python 弹球游戏
  9. Android声明式UI框架-Litho-初探——基础使用篇
  10. 详解CPIO与Squashfs文件系统