Appium Server 就是 Appium 的服务端——一个 web 接口服务,使用 Node.js 实现。引用官网解释说明。
Appium is a server written in Node.js. It can be built and installed from source or installed directly from NPM:
$ npm install -g appium
$ appium
Appium Desktop 是一款适用于 Mac,Windows 和 Linux 的开源应用程序,它以美观而灵活的用户界面为您提供 Appium 自动化服务器的强大功能。 它是几个 Appium 相关工具的组合:
Appium Desktop 与 Appium 不同。 Appium Desktop 是 Appium 的图形前端,带有其他工具。 Appium Desktop 以其自己的节奏发布,并拥有自己的版本控制系统。
就像国内很多定制的 Android 系统有自己版本号,但是都是基于一个 Android 系统版本封装的。版本号不一定与 Andriod 原生系统版本号一致。如:魅族的 flyme6.0 系统的内核是 Android 5.1
Appium GUI 是 Appium desktop 的前身。
这个也是把 Appium server 封装成了一个图形界面,降低使用门槛,如同最初的操作系统 Dos 都是敲命令,后面都是图形界面操作系统,如 Windows 系统。很多初学者对下面这个界面应该不陌生吧,这个就是 Windows 版本的 Appium GUI 界面。测试人员可以手动启动,配置相关 server 服务,如果不用这个启动的话,需要命令启动服务。因为大部分教程都是基于这个 GUI 来讲解的,所以很多人一说 Appium 就认为是这个。
该产品的 Windows 版本在 2015 年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的 Appium 版本,而是 1.4.16 版本。如果要使用最新的桌面版需要使用Appium Desktop。
因为 Appium 是一个 C/S 结构,有了服务端的肯定还有客户端,Appium Clients 就是客户端,它会给服务端 Appium Server 发送请求会话来执行自动化任务。就像我们浏览器访问网页,浏览器是客户端,通过操作发送请求服务器来获取数据。
Appium 客户端可以使用不同的语言来实现,如 Python,java 等。具体详见下表:
Language/Framework | Github Repo and Installation Instructions |
---|---|
Ruby | https://github.com/appium/ruby_lib |
Python | https://github.com/appium/python-client |
Java | https://github.com/appium/java-client |
JavaScript (Node.js) | https://github.com/admc/wd |
Objective C | https://github.com/appium/selenium-objective-c |
PHP | https://github.com/appium/php-client |
C# (.NET) | https://github.com/appium/appium-dotnet-driver |
RobotFramework | https://github.com/jollychang/robotframework-appiumlibrary |
离我们软件产业基地这边很近啊,你们那是海景办公室,我们这边除了百度大厦和腾讯大厦都看不到海了。。
好像就在那个航天大厦那边吧。
先使用 driver.switch_to_alert() 跳转到弹窗,然后定位弹窗上面的元素进行点击操作。
嗯,断言在用例里面还有一个好处就是生成的 html 报告对应的测试结果 Pass,Fail 会比较直观的展示,而放在 page 层就比较笼统,只有脚本运行出错才会显示对应报错信息。
ok,谢谢指点。
嗯,这个得根据项目实际情况来处理。
业务流程比较简单放 case 里面其实还是可以的,但是业务流程场景比较复杂的话放 case 有点不太方便。
谢谢,这个其实和元素定位方式无关,是等待时间的问题。
非常感谢提醒,我加了强制等待 sleep(2)之后确实可以获取到了,估计是点击 submit 之后需要等待 js 响应显示元素。
今年大疆和腾讯沙龙都见过卡斯大牛!
挺不错的!赞。另外发现还有几个小问题需要优化优化一下:
1.Html 报告运行时间会显示科学计数:
2.那个用 例数: 1 | 成功: 1 | 失败: 0 | 跳过: 0 这一栏对应的属性中,width: 20% 建议去掉,不然会显示错位。
div style="width: 20%; float: right">
不错!就在我们公司楼下,可惜有事那天没去。
提到保密性不得不吐槽下,之前我们的单机手游产品,上传到某云测平台后,结果游戏还没上线,网上就有我们游戏破解版了。。
目前的各类平台主要是一些兼容性测试,和通用性的自动化测试,更多扮演的是一种辅助的测试工具角色。不可能为你的产品随时变化的需求来做对应的变动(除非加钱做企业定制化服务),从而覆盖的产品测试深度其实也非常有限,如异常分支场景,特定功能场景等。因此在现阶段完全取代测试人员是不可能的,就像当初电子书,互联网蓬勃发展,很多人会担心传统纸质媒体,书籍报刊是否会没落消亡,但是从现实来看,并没有完全取代传统纸质媒体,而且适应了互联网发展衍生了新媒体。所以个人觉得,不管现在当下热门的人工智能、机器学习等热门的技术如何发展,对于我们来说学好基础知识,踏踏实实一步一个脚印,少一点浮躁,多一份坦然,时间会给你答案和结果。
苹果 iOS 系统是不允许的,除非是 Beta 版的时候,可以刷固件包降级。
赞同,因为产品人员的需求文档可能有很多漏洞需要测试人员来提前介入需求分析。
抽奖!
赞!!
期待大牛们的分享,已报名!
讲师和工作人员辛苦了!非常荣幸通过这次沙龙能够零距离见识传说中的大疆。
互联网事业部和无人机有关吗?
并发运行用例会用到多线程或多进程吗?
你们公司产品是 PC 端的, 是那种桌面程序软件吗?为啥 UI 测试是用浏览器跑测试用例?求解释。
期待大牛的分享!!