如何在数百台云端手机上同步执行Appium/Selenium测试

Bitbar, the mobile devops company. Logo, large

Appium是目前最受欢迎的同时支持Android和iOS测试的开源测试框架之一。从支持Appium开始到现在的一年多内,我们已经看到有很多开发人员与测试人员在Testdroid Cloud上执行了Appium测试。今天,我们将为你介绍一个Appium测试执行的新功能,使测试人员更简单地使用Appium执行应用程序的测试,并且保证了更高的测试结果的正确率,也简化了你总需要配置Desired Capabilities的繁琐事项。

在上周发布的最新版本的Testdroid Cloud中,就包含了一种全新的Appium测试方式,即在Testdroid Cloud的所有设备上同时执行Appium测试。在前几个版本中,客户需要在 “客户端执行测试(Client-Side Appium Execution)” 前配置Desired Capabilities,而此次的更新将简化客户配置的工作流程。我们将这个新的功能命名为 “服务器端测试执行 (Server-Side Appium Execution)”。顾名思义,用户可以非常简单地在我们的云端执行测试脚本 – 你只需将.apk或是.ipa文件以及你的Appium测试脚本分别上传到Testdroid Cloud的云端,我们的系统将会进行正确合适的配置并且管理所有Desired Capabilities的细节。

Download Our Appium Beginner’s Guide to Set Up your Appium Testing Environment Today

这是如何运作的?

首先,你可以选择通过Testdroid Cloud的网页端或是用Testdroid API将你的应用程序(.apk或是.ipa)以及含有测试脚本的.zip文件(包括所有测试用例,脚本等)上传至Testdroid Cloud。

好消息是,Testdroid Cloud其他所有功能都能和服务器端(Server-Side)Appium无缝链接。比如说,在不修改Desired Capabilities的前提下,你可以创建新的设备组并对该设备组中的设备执行测试。通过这种方法,你就避免了原本需要对Desired Capabilities配置的过程,并省下了大量的时间。

Running Parallel Appium Tests on Real Devices

相反,在客户端(Client-Side)执行Appium测试时,整个流程就没有那么简单。首先,你需要配置那些与Testdroid相关的Desired Capabilities,并需要确保所有先决条件都已满足于在Testdroid Cloud上执行测试。接着,你的测试脚本需要通过Appium Broker并与之交互,然后Appium Broker会将所有的配置细节传递给Appium服务器,并以每次一台设备的方式,传递给测试设备。而在服务器端执行Appium测试时,所有设备将以并行的方式在同一时间配置完成,大大减少了时间,加快了整个流程。

当然,无论是用客户端(Client-Side)执行还是服务器端(Server-Side)执行Appium,你都可以在Testdroid Cloud项目中找到所有的测试资源(测试脚本,测试截图,测试日志等),但如果你在服务器端(Server-Side)执行Appium测试,你还可以使用Testdroid Cloud的其他所有功能给你的测试带来更多的利益。

如何避免配置Desired Capabilities?

首先,我们先来了解一下本地主机端和Testdroid Cloud端。在你执行Appium测试时,你需要相应地对Desired Capabilities进行配置。另外,你需要定义WebDriver的目的地URL – 本地主机端(http://localhost:4723/wd/hub)或者是Testdroid Cloud端(http://appium.testdroid.com/wd/hub)。举例来说,如果你使用Testdroid Cloud,你需要在你的测试脚本中添加Testdroid Desired Capabilities,具体如下:

{
“testdroid_username”: “user@domain.com”,
“testdroid_password”: “p4s$w0rd”,
“testdroid_target”: “ios”,
“testdroid_project”: “My First Project”,
“testdroid_testrun”: “Test 1”,
“testdroid_device”: “iPad Mini 7.0.4 A1432”,
“testdroid_app”: “application.ipa”
.
.
“app”: “com.bitbar.testdroid.BitbarIOSSample”
}

除此以外,你还可以在这里找到更多配置Desired Capabilities的方法。

具体的流程

虽然在服务器端(Server-Side)执行Appium测试更方便,但客户端(Client-Side)执行和服务器端(Server-Side)执行两种方式在基础设备需求上是比较相似的。而且,无论你使用哪种方式,Appium测试都会如下图所示的流程执行。

Running Parallel Appium Tests on Real Devices

如果你在客户端(Client-Side) (Client-side)执行测试,你必须配置Desired Capabilities。然后,Appium服务器和我们的Appium Broker会以每次一台设备的方式依次进行测试。而在服务器端(Server-Side)执行Appium测试时,我们的系统会在所有的设备上同时进行测试。更值得一提的是,同时进行测试的设备数量是没有限制的,也就是说你可以在数百台设备上同时进行Appium测试。

服务器端执行Appium测试带来的优势

服务器端(Server-Side)测试方法带来的第一个重要的提升是用户可以在真机上执行并行的Appium测试。由于最初的Appium使用对象是模拟器上或只是以每次一台设备的测试方法执行测试,而我们Testdroid在原有的基础上扩展了Appium在数百台真机上同时执行测试的能力

第二,用户不需要配置任何设备的Desired Capabilities。用户只需在Testdroid Cloud上创建设备组,然后将需要测试的设备陆续添加到新创建的设备组。这种方式既简便,且减少了因为编辑脚本而产生的不同类型的错误

第三,在Testdroid Cloud上执行测试可以让用户即时浏览测试状况。也就是说,你可以查看到测试执行的进度,即时的错误反馈,以及保留和查阅所有测试项目,测试脚本和测试结果(测试截图,测试日志,性能数据等)。

如果你对服务器端执行Appium测试感兴趣的话,可以联系我们 sales (at) bitbar (dot) com。


The Beginner’s Guide of Using Appium for Mobile App Testing

Learn all the basics about Appium, how to set it up and how to use it for mobile app testing.

Download

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close