解放双手,提高生产力,这款神器你值得拥有

简介: 从石器时代开始,原始人来已经开始学会制造并使用工具,以满足自己的生活所需,这也是人类和动物最本质的区别,人类懂得制造并使用工具而动物不会。

从石器时代开始,原始人来已经开始学会制造并使用工具,以满足自己的生活所需,这也是人类和动物最本质的区别,人类懂得制造并使用工具而动物不会。

21 世纪的现代社会更是如此,企业与企业之间是人才的竞争,而人的竞争力则严重依赖其会使用工具的多少以及熟练程度,毕竟古人有云:「君子生非异也,善假于物也」。

软件测试作为软件发布前的最后一个环节,起着至关重要的作用。虽然在很多公司里相对于开发来讲,公司对测试岗都不太重视,但这绝对不能掩盖其地位的重要性,稍有疏漏,就可能给公司带来巨大的损失。

纵观国内各公司大部分的测试工作依然都是手动完成的,这不仅是对人力资源的巨大浪费,同时还伴随着巨大的潜在风险。因为人有时候会犯错,而机器则不会。所以我们要尽可能的把可以自动化的操作交给机器去完成,从而解放我们的双手,去做一些更有意义的事情。

什么是 Appium

Appium 是一个开源的移动端自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且其是跨平台的,可用于 iOS 和 Android 操作系统。这也就意味着你可以针对不同的平台使用同一套 Api 来编写测试程序,以提高代码的服用行和可维护性。

设计思想

为了更好的应对千变万化的需求,Appium 没有和某一门具体的语言绑死,开发者可以使用自己最熟悉的任何语言来使用该框架。Appium 之所以这么灵活完全得益于其优秀的设计思路,该框架使用 client-server 的设计模式,只要 server 端可以收到 client 端发送过来的请求,那么 client 端用什么语言来实现其实意义已经不大了,无关紧要。

这样的设计思想带来了巨大的好处,其一就是使框架可以做到支持多语言,其二则是可以把 server 端放在任何机器上,即使是云服务器上也完全没有问题。

入门

想必在程序圈儿的你肯定对 Hello World 不陌生,每当我们学习一个新的技术的时候基本都会写一个 Hello World 的 demo 来快速熟悉该技术,同样,今天我就带着大家做一个入门 Appium。

首先我们把环境搭建起来,依次安装下列软件。

  • Android Studio
  • JDK
  • Python 3.8
  • PyCharm
  • 网易模拟器
  • Appium 桌面版

之所以需要安装 Android Studio 完全是因为链接安卓模拟器调试 App 程序时会用到 Android SDK,而 Android Studio 附带了 Andoid SDK,固直接安装 Android Studio。另外我们选择 Appium 桌面版,是因为桌面版附带可视化操作界面,对新手比较友好。

其中前四个大家可能都比较熟悉,自行安装即可。Appium 则需从 https://github.com/appium/appium-desktop/releases/tag/v1.18.3 下载对应的版本直接安装就可以了。

18.jpg


安装完成后启动 Appium,Host 和 Port 默认即可,接着点击下面的配置按钮进入配置页,设置完成 Android Home 和 Java Home 后直接启动 Server 就可以了。

19.jpg

20.jpg

当看到如下界面时,恭喜你,Server 已经启动成功了。

21.jpg

启动成功

接下来,我们开始完善 client 端,其实就是代码而已,直接调用 Api 即可。因为我们是要通过 Appium 来操控模拟器上的 App,所以需要先将模拟器启动。命令行输入 adb devices 如果看到以下信息,则说明模拟器是正常的。

22.jpg

接着就是编写 client 端代码了,

from appium import webdriver
desired_capabilities = {
    "platformName": "Android", # 操作系统
    "deviceName": "emulator-5554", # 设备 ID
    "platformVersion": "6.0.1", # 设备版本号
    "appPackage": "com.tencent.mm", # app 包名
    "appActivity": "com.tencent.mm.ui.LauncherUI", # app 启动时主 Activity
    'noReset': True # 是否保留 session 信息 可以避免重新登录
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
print('链接到安卓模拟器')

有了以上信息之后,我们就可以通过程序直接链接到模拟器,然后自动启动微信 App 了。23.jpg


那么启动了微信 App 之后我们还可以做什么操作呢?基本上我们手动可以做的操作,程序都可以替我们完成。

driver.find_element_by_id('com.tencent.mm:id/f8y').click()
print('查找搜索按钮')
time.sleep(3)
driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('Python 技术')
print('查找搜索输入框 & 写入搜索关键字')
time.sleep(3)
driver.find_element_by_id('com.tencent.mm:id/tm').click()
print('点击 icon 图标')
time.sleep(3)
driver.find_element_by_id('com.tencent.mm:id/cj').click()
print('点击右上角头像')
time.sleep(3)
driver.find_element_by_id('com.tencent.mm:id/a1u').click()
print('点击第一篇文章')

上面这一套代码做了什么操作呢,简言之就是通过搜索找到「Python 技术」公众号,然后再去到该公众号主页并且查看了第一篇文章。同时程序为了给 App 留出一点反应时间,我们在每次发送指令后均让程序休息 3 秒钟。

细心的你可能发现了,上述代码主要涉及到三个 Api,find_element_by_id()send_keys() 以及 click,看函数名也就知道是做什么的了。

那么,我们怎么知道某个元素的 ID 呢?这时候就又要请出我们的桌面版 Appium 了。点击「启动成功」界面右上角的放大镜图标。之后将上述程序中的配置信息添加上去,最后点击「Start Session」按钮,不出意外的话你应该能看到微信启动界面了,就是那个地球。


24.jpg


但是细心的你会发现,模拟器上的界面和 Appium 上的不一致,此时需要你刷新下 Appium 上的界面信息,点击下图中的刷新按钮就可以了。


25.jpg

如果想获取某个元素的 ID,那么则先选中选择按钮,接着选中你想要获取 ID 的元素即可。



26.jpg


总结

今天我们学习了自动化神器 Appium,其实该框架不仅仅只是用来做测试,其用武之地可多着呢,比如定时给女票发微信提醒她「多喝热水」,哈哈哈,小伙伴们可以发挥自己的想象力做一些好玩的工具出来哦。


目录
相关文章
|
3月前
|
编解码 数据可视化 Linux
搬运5款小众软件,知道的人少,但棒!
今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。
25 0
|
5月前
|
机器学习/深度学习 人工智能 安全
2023 Google 开发者大会:无障碍游戏体验升级、安卓开发人员生产力爆棚
2023 Google 开发者大会:无障碍游戏体验升级、安卓开发人员生产力爆棚
|
9月前
|
编解码 文字识别 监控
推荐5款实用软件,提高工作效率,丰富生活乐趣
分享软件会让我感到开心和满足,因为我知道这些软件可以提高工作效率,丰富生活乐趣。今天再次将几款非常实用的软件推荐给大家。
69 0
|
12月前
|
人工智能 自然语言处理 数据安全/隐私保护
分享5个堪称神器的效率软件
今天再来推荐5个超级好用的效率软件,无论是对你的学习还是办公都能有所帮助,每个都堪称神器中的神器,用完后觉得不好用你找我。
93 0
|
SQL 人工智能 文字识别
居家办公更要高效-自动化办公完美提升摸鱼时间
不管是线下办公,还是居家办公,摸鱼必不可少(当然不提倡摸鱼),可是摸鱼归摸鱼,工作总得完成,KPI得好看,才能走向人生巅峰。不然月月3.25,年年得吃土,你有多痛苦,老板不清楚,让你加入毕业队伍,你只会大骂人心不古。押韵吧,KPI要好看,活得干的好,干的有效率,平时还想摸摸鱼,那摸鱼神器不得备一套,额。。。不,是高效办公神器必须得攒一套。这不,自动化办公的神器双手奉上,废话不多说,上才艺。 说到办公,每天都少不了要和各种文档打交道,csv,excel,word,ppt,pdf甚至txt文本文件,需要对这些文档做各种操作,有很多还是比较机械化的重复工作,枯燥且无味,花时间勉强能够处理,就是有点废
268 1
|
JSON 前端开发 JavaScript
解放双手!推荐一款阿里开源的低代码工具,YYDS
之前分享过一些低代码相关的文章,发现大家还是比较感兴趣的。之前在我印象中低代码就是通过图形化界面来生成代码而已,其实真正的低代码不仅要负责生成代码,还要负责代码的维护,把它当做一站式开发平台也不为过!最近体验了一把阿里开源的低代码工具LowCodeEngine,确实是一款面向企业级的低代码解决方案,推荐给大家! LowCodeEngine简介 LowCodeEngine是阿里开源的一套面向扩展设计的企业级低代码技术体系,目前在在Github上已有4.7K+Star。这个项目大概是今年2月中旬开源的,两个月不到收获这么多Star,确实非常厉害!
|
存储 监控 固态存储
非常棒的5款办公软件,各个都能大幅提升工作效率
非常棒的5款办公软件,各个都能大幅提升工作效率
213 0
|
存储 人工智能 文字识别
工欲善其事,必先利其器,电脑上这些软件堪称惊艳
工欲善其事,必先利其器,电脑上这些软件堪称惊艳工欲善其事,必先利其器,电脑上这些软件堪称惊艳
188 0
|
存储 算法
五款办公神器,用过才知道什么叫成倍地提升工作效率
分享是一种神奇的东西,它使快乐增大,它使悲伤减小,坚持分享一些好用的软件给大家,今天继续为大家带来五款办公神器。
187 1
五款办公神器,用过才知道什么叫成倍地提升工作效率
|
数据采集 编解码 JavaScript
赶紧收藏!程序员必备的十三个工具网站,解放你的双手,轻松编程(上)
我准备分享一下我在编程路上收藏并且经常使用的一些非常实用的工具在线网站,赶紧收藏起来。
468 0
赶紧收藏!程序员必备的十三个工具网站,解放你的双手,轻松编程(上)