这里写目录标题

  • Speedtest简介
  • Appium环境搭建
  • 手机连接测试
  • 编写自动化代码
    • APP的包名和Activity获取方法
  • 开始执行

Speedtest简介

Speedtest是一款专业测速的软件,可以对当前网络的上传,下载速度进行测试。近期有以下需求,需要重复点击开始按钮,不间断地对网络质量进行测试。人工操作的话,需要占用大量的时间。

能否自动化呢?移动端自动化测试Appium来了!

Appium环境搭建

参考白月黑羽大佬的博客: 点我跳转

主要由三个模块构成,Appium-client,Appium-Server,和设备组成。

  • 自动化程序

自动化程序是由我们来开发的,实现具体的手机自动化功能。

要发出具体的指令控制手机,也需要使用 客户端库。

Appium 组织 也提供了多种编程语言的客户端库,包括 Java,Python,js, Ruby等,我们使用的是Python。

我们需要安装好客户端库,调用这些库,就可以发出自动化指令给手机。

  • Appium Server

Appium Server 是 Appium 组织开发的程序,它负责管理手机自动化环境,并且转发 自动化程序的控制指令 给 手机,并且转发 手机给 自动化程序的响应消息。

  • 手机设备

我们这里说的手机设备,其实不仅仅是手机,包括所有 苹果、安卓的移动设备,比如:手机、平板、智能手表等。

为了直观方便的讲解,这里我们简称: 手机

当然手机上也包含了 我们要自动化控制的 手机应用APP。

手机设备为什么能 接收并且处理自动化指令呢?

因为,Appium Server 会在手机上 安装一个 自动化代理程序, 代理程序会等待自动化指令,并且执行自动化指令。

比如:要模拟用户点击界面按钮,Appium 自动化系统的流程是这样的:

自动化程序 调用客户端库相应的函数, 发送 点击元素 的指令(封装在HTTP消息里)给 Appium Server

Appium Server 再转发这个指令给 手机上的自动化代理

手机上的自动化代理 接收到 指令后,调用手机平台的自动化库,执行点击操作,返回点击成功的结果给 Appium Server

Appium Server 转发给 自动化程序

自动化程序了解到本操作成功后,继续后面的自动化流程

其中,自动化代理控制,使用的什么库来实现自动化的呢?

如果测试的是苹果手机, 用的是苹果的 XCUITest 框架 (IOS9.3版本以后)

如果测试的是安卓手机,用的是安卓的 UIAutomator 框架 (Android4.2以后)

这些自动化框架提供了在手机设备上运行的库,可以让程序调用这些库,像人一样自动化操控设备和APP,比如:点击、滑动,模拟各种按键消息等。

Appium支持多种变成语言,我使用的是Python,需要安装下面几个软件。

  • Python及相关IDE —— Anaconda官方链接
  • Appium-Python-Client (命令行键入)
pip install Appium-Python-Client

至此,Appium客户端相关程序安装成功

  • Node.js -下载链接
  • Appium-server下载链接

至此,Appium服务器相关程序安装成功

  • JDK8下载链接
  • Android SDK下载链接

至此,手机测试需要的一些工具包安装成功

  • Appium Inspector(元素定位的工具)下载链接

手机连接测试

环境搭建好啦!手机USB线连接电脑试试。

然后,手机进入开发者模式,打开调试功能 。

开发者模式进入方式:设置->系统设置->开发者选项,勾选开发者选项,USB调试


如果第一次使用开发者模式,可能会找不到该选项。进入“我的设备”,多次点击“软件版本号”,直至出现提示信息。

命令行输入下面命令,电脑识别出来USB连接的手机

adb devices

编写自动化代码

接下来开始编写程序,打开Jupyter Notebook

#导包
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
from appium.webdriver.common.appiumby import AppiumBy
import time#APP启动常用参数
desired_caps={"platformName":"Android", #Android or IOS"platformVersion":"9", #手机Android版本"deviceName":"***",#苹果必须,可选"appPackage":"org.zwanoo.android.speedtest", #APP的包名"appActivity":"com.ookla.mobile4.screens.main.MainActivity", #APP的activity名"unicodeKeyboard":False,#不使用系统自带的软键盘"resetKeyboard":True,#隐藏键盘"noReset":True,#每次重启APP,是否重置"newCommandTimeout":60000,"automationName":"UiAutomator2"
}#之所以加上try,catch,是因为程序还有些问题.每运行300秒,程序会自动崩溃
#代码改写后,每次遇到异常,会重启APP
while(1):#启动APPdriver = webdriver.Remote("http://localhost:4723/wd/hub",  #服务器ip端口desired_caps
)#设置隐式等待driver.implicitly_wait(60)try: #初次打开测速软件,需要搜索附近可用信号#等待20s再进行测速time.sleep(20)#循环执行for i in range(100):driver.find_element(by=AppiumBy.XPATH, value = '//android.view.View[@content-desc="Start a Speedtest"]').click() except Exception: driver.quit()print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

APP的包名和Activity获取方法

手机打开Speedtest 软件,并放置在最上层

电脑命令行键入

adb shell dumpsys activity recents | find "intent={"


查询到的第一个intent就是Speedtest应用的相关信息,cmp后面跟的信息就是Speedtest的包名和activity名。

开始执行

首先,打开Appium服务器


点击startServer按钮

Appium-Server已启动

运行代码

speedtest演示视频

虽然代码能跑起来,基本可以满足需求,但是程序还存在5分钟重启一次的问题。

XDM,有什么问题,评论区相互交流哈!我也是刚接触Appium撒!

Appium实现Speedtest软件测速自动化相关推荐

  1. speedtest命令行linux,Linux通过命令行使用speedtest宽带测速

    Linux通过命令行使用speedtest宽带测速 Speedtest测试网络上传/下载速度还是挺不错的,windows下非常方便.Linux下也可以很方便的使用命令行speedtest来测试.spe ...

  2. Linux下 SpeedTest 工具测速

    1. 概述     目的: 用来测试开发板上的4G 模块网络上传和下载速度:     在Linux的命令行中使用speedtest-cli来测试宽带连接速度.speedtest-cli是一个使用pyt ...

  3. qq测试常用软件,测速软件有哪些_测速软件实用推荐

    在手机等设备的使用过程中,我们有时会发现网速非常的慢,这时,我们可以使用一款测速软件对我们的设备进行扫描测试,以便帮助我们更好的了解网速卡顿的问题,给我们的设备提速.那么,有哪些好用的测速软件呢?小编 ...

  4. linux网络诊断工具mtr;speedtest网络测速脚本

    安装mtr Debian & Ubuntu apt -y install mtr-tiny RHEL & CentOS yum -y install mtr 使用demo 第一列:显示 ...

  5. 又一国家级测速软件上线:绿色免费,支持5G 和千兆测速

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 很多小伙伴在上网的过程中,偶尔会遭遇网络使用卡顿,或网络出现波动的情况,如何才能让网路更加稳定?这时候大家可能会选 ...

  6. 电脑测速软件_联通你我【宽带提速】让网速飞!超实用的宽带测速提速攻略来啦!...

    宅在家里,在家娱乐. 在家办公.在家上课, 都需要畅快的宽带网络, 所以很多小伙伴都办理了 联通宽带 怎样才是正确的宽带测速姿势? 小沃给大家介绍两种简便的测速方法, 同时说说 怎样才能完全释放宽带网 ...

  7. 5g网速用什么软件测试手机,5G时代到底有多快?测速软件谁最靠谱?

    5G时代到底有多快?测速软件谁最靠谱? 2020-12-18 22:13:08 0点赞 0收藏 0评论 5G时代落地紧锣密鼓,如火如荼,整个网络社会经历了一场近乎高铁般的大提速.不过在这场大提速过程中 ...

  8. 测速源码_解密,相亲交友直播系统源码,高并发如何做到不卡顿

    视频直播已经进入下半场,大家关注的焦点已经从如何构建完善的直播平台,转入到精细化运营阶段.首先是用户对直播体验的要求越来越高,需要做到精细的人群划分,其次是用户基数大,并且网络情况复杂.所以,如何在巨 ...

  9. 测试网速_测速软件测试的网速真的准确吗?

    前些日子,朋友在某电信公司办理一条500M的家用宽带,邀请我去他家体验急速网络,我经不住他的再三邀请,欣然前往,一路上他一直在得瑟:不服跑个分!不服测个速!但是到了他家,就发现,跑分超级高,测速超级快 ...

最新文章

  1. unigui的页面布局使用
  2. Java学习_day001
  3. linux shell 宏定义_linux内核修炼之系统调用
  4. c语言函数调用数组_第七讲:C语言基础之函数,第二节,实现汉诺塔
  5. A Comprehensive Survey on Graph Neural Networks
  6. centos7虚拟机开启端口后 外部不能访问的问题
  7. 《天天数学》连载20:一月二十日
  8. Linux内存是怎么工作的
  9. c++sizeof求类大小 sizeof与strlen对比
  10. 案例分析 | 贝壳找房:自我颠覆的整合式创新引领产业数字化
  11. windows计算机搜索文件,win7如何根据文件中的文字搜索文件?教你win7直接搜索文件内容...
  12. 移动应用接入网页QQ登录
  13. 数据库课程设计:利用python+MySQL+pyqt5设计一个带UI界面的书店管理系统
  14. mysql localhost可以连接,输入ip地址连接访问被拒绝
  15. 词向量与词向量拼接_如何拥抱 embedding ?从词向量到句向量的技术详解-阿里云开发者社区...
  16. PDF转ePub选择人工转换的原因
  17. 内网域横向PTHPTKPTT哈希票据传递
  18. 我们需要培养职业化的工作习惯
  19. 3dsMax如何渲染模型
  20. Motorola S19(S-record)格式解析

热门文章

  1. 论文阅读-使用CNN从双平面X光片走向自动化3D脊柱重建以进行统计脊柱模型拟合
  2. 怎么判断自己面试是不是凉了?
  3. 零基础了解Https-https协议详解
  4. Atmel基于ARM Cortex-M的全球最低功耗解决方案 突破超低功率性能瓶颈
  5. Android Toast源码分析
  6. espcms搜索注入页面
  7. Win10中的核心隔离和内存完整性是什么?
  8. SALSA for unity 实现 眨眼 表情 口型
  9. AWS Devops所涉及的必须了解运用求职的重要服务
  10. 30 JS数组练习——三级联动