基于airtest微信服务号自动化测试NO1

  • 1. 项目背景
    • 1.1 框架选择airtest+模拟器
    • 1.2 软件安装
      • 1.2.1 mumu模拟器
      • 1.2.2 airtest安装
      • 1.2.3 调试工具PocoHierarchyViewer
      • 1.2.4 模拟器安装微信
    • 1.3 coding
      • 1.3.1 获取微信APP的package属性
      • 1.3.2 获取mumu模拟器连接代码
      • 1.3.3 pocoService
    • 1.4 代码

1. 项目背景

公司有几个定制开发的微信公众号,现在平稳上线一段时间了,正好适合自动化测试的应用场景,就和公司提议把微信自动化测试提上日程(实际是笔者太懒,不想每天做线上验证的工作,哈哈),这里做个记录。
实现思路:基于python语言,使用airtest和poco框架,连接模拟器,实现微信公众号自动化测试;airtest可以基于图片进行自动化测试,但是图片截图比对限定了使用条件,变更手机或分辨率就可以导致自动化测试失败(对比图片有变化就不行了),使用poco就是定位页面元素属性,不会受到截图的限制;

1.1 框架选择airtest+模拟器

笔者比较熟悉python语言,以前做数据分析和后台系统业务单元测试都是用的python,所以就从这方面入手了。
安卓手机模拟器:网易mumu模拟器;
python+airtest+poco

1.2 软件安装

1.2.1 mumu模拟器

可以用真机,我这里是为了节省资源,选择了安卓模拟器mumu;这是我的版本;

1.2.2 airtest安装

Airtest图像识别框架
PocoUI控件搜索框架

python版本

pip install poco;
pip install pocoui;
安装pip install opencv-contrib-python==3.2.0.7 如果失败先执行卸载pip uninstall opencv-contrib-python然后再重新执行安装,如果pip版本过低可以升级:pip install opencv-contrib-python也可不升级直接执行安装)


安装airtest: pip install airtest
建议用清华源进行安装
http://pypi.douban.com/simple/

1.2.3 调试工具PocoHierarchyViewer

获取poco属性的工具

1.2.4 模拟器安装微信

过程略过

1.3 coding

1.3.1 获取微信APP的package属性

获取微信app的package属性
模拟器上打开微信app,任意页面使用PocoHierarchyViewer,获取属性,取package的值:com.tencent.mm

1.3.2 获取mumu模拟器连接代码

Android://127.0.0.1:5037/127.0.0.1:7555

1.3.3 pocoService

poco在运行前会自动在安卓机安装一个驱动服务apk,这个是自动安装的。

1.4 代码

引入代码包
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
auto_setup()#初始化脚本运行环境(如果使用自动生成报告功能或需要重定义log日志的话,建议按代码示例赋值)
connect_device #连接设备(这里连接的是mumu模拟器)
start_app #启动app

# -*- encoding=utf8 -*-
from airtest.core.api import *__author__ = "码上有肉"
__title__ = "线上功能回归验证"
__desc__ = ''''''
auto_setup(__file__, logdir=True)
app_package = "com.tencent.mm"
device_id = "Android://127.0.0.1:5037/127.0.0.1:7555"
connect_device(device_id)
start_app(app_package)

这只是样例,演示流程,未完待续。。。。

基于airtest+poco微信服务号自动化测试NO1相关推荐

  1. 基于OpenJWeb平台的微信服务号开发培训-生成带参数二维码

    因为OpenJWeb平台已经集成了微信服务号接口,所以在OpenJWeb平台上开发微信服务号会起到事半功倍的作用.本文介绍如何使用微信公众号接口生成带参数二维码功能. 下面是开发及操作过程: (1)首 ...

  2. 百万级微信服务号如何做活动运营和用户运营?

    原文发布于2014年9月初. 大家好,我叫米拉,我是做新媒体运营的,我们运营的微信服务号目前已突破100W+粉丝.通过活动测试我们的用户活跃度在20%左右.头条阅读打开率基本保持业内水平10%,在新榜 ...

  3. 基于Vue的微信公众号开发及选型研究

    目录 1.背景介绍 1.1微信公众号简介 1.2Vue框架简介 1.3组件库简介 2.开发流程 2.1申请微信公众号 2.2申请微信测试号及配置 2.3安装微信开发者工具 2.4创建Vue项目 2.5 ...

  4. 微信服务号、订阅号和企业号的差别(运营和开发两个角度)

    一.运营的角度 1.1.概括 订阅号: 微信最初的形态是一个纯粹的社交工具,也就是人与人之间的联系工具,当中又分熟人之间的联系和陌生人之间的联系.于是就诞生了朋友圈和订阅号. 而订阅号的作用就是媒体社 ...

  5. PHP 开发社区微信服务号实战图解

     本博文就月初刚上线的微信服务号,图文进行总结分享给大家. 去年年底,我所在的团队讨论要开发微信号,话题由此拉开: 原来有一个3年前注册的微信号,但是后台操作无法从"订阅号"变 ...

  6. 微信服务号开发-获取用户位置信息

    微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...

  7. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

  8. 微信服务通知消息找回_第三方平台微信服务号模板消息怎么发送

    使用公众号平台模板消息功能,无法发送模板消息,如果想要发送模板消息,可以用第三方平台微号帮功能模板消息群发实现,也可自己根据公众号平台的接口开发实现,均可以为微信服务号发送模板消息,且发送模板消息不占 ...

  9. 全面解读:微信服务号升级和群发增至4条的应用方法

    全面解读:微信服务号升级和群发增至4条的应用方法 摘要:微信公众平台正式公布微信服务号升级的消息,提供高级群发接口,火速华磊初步总结:群发接口的提供意味着企业获得了精准推送的能力.企业获得了每月多次激 ...

最新文章

  1. IP_FORWARD转发
  2. python免费入门手册-Python 基础入门教程
  3. 【错误记录】编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )
  4. stm32f103 spi crc
  5. String.format()的使用
  6. [ZJOI2015] 幻想乡战略游戏(树链剖分 + 线段树二分 + 带权重心)
  7. 常见问题摘要(生活篇)
  8. woocommerce 分类到菜单_Woocommerce商店显示分类
  9. String,StringBuffer,StringBuilder效率优先关系说明
  10. IS-IS详解(十六)——IS-IS 分片扩展
  11. python在工程管理专业的应用_工程大数据在水利工程建设管理的应用
  12. 五金行业智慧采购解决方案:应用集中采购协同管理系统激活企业数字化采购价值
  13. Shadowmask
  14. SAP中物料采购PO和SA共存情况下的标准价格确定
  15. dell计算机一直重启,dell开机无限循环重启如何处理
  16. 信源编码作业(1)——绘制并分析清浊音频谱图
  17. 郭博分析modbus主机模式
  18. Flutter 调用百度地图APP实现位置搜索、路线规划
  19. 编程-----魔法币投币方案设计
  20. 网页收录数量与网站排名有关系吗?

热门文章

  1. 差分隐私 走过的坑
  2. JSON数组转Java List
  3. cocos2dx与OpenGL渲染知识
  4. 计算机网络④-③/④:流媒体协议:编码/推流/拉流、 P2P协议:.torrent/DHT
  5. https原理的来龙去脉
  6. F - Sugoroku2 (期望dp)
  7. 接收方带宽估计的RTCP消息 REMB
  8. 提升进程权限-OpenProcessToken等函数的用法
  9. python爬虫中pyc文件的生成和使用
  10. oracle协议适配器错误tns,ORA-12560: TNS: 协议适配器错误