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的细节。
这是如何运作的?
首先,你可以选择通过Testdroid Cloud的网页端或是用Testdroid API将你的应用程序(.apk或是.ipa)以及含有测试脚本的.zip文件(包括所有测试用例,脚本等)上传至Testdroid Cloud。
好消息是,Testdroid Cloud其他所有功能都能和服务器端(Server-Side)Appium无缝链接。比如说,在不修改Desired Capabilities的前提下,你可以创建新的设备组并对该设备组中的设备执行测试。通过这种方法,你就避免了原本需要对Desired Capabilities配置的过程,并省下了大量的时间。
相反,在客户端(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测试都会如下图所示的流程执行。
如果你在客户端(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。