前些天看了一个半标题党文章《Keeping Selenium Tests 100% Blue》,了解到了Sauce Labs这个公司。Sauce Labs是一个提供自动化功能测试的云测试服务公司。Sauce Labs的团队介绍很有意思,CTO是放在第一位,接下来是CEO。他们的创始人兼CTO:Jason Huggins,是Selenium的作者。看了以后我对他们的服务质量还是挺有信心的。
言归正传,Selenium在web自动化测试方面用的想当地广泛,它的一个吸引人的地方就是写一个测试可以测试N个平台的M个浏览器的Z个版本。但对于小团队的话,维护这么多VM系统不现实。我觉得Sauce Labs对于Start up公司来说应该还是挺有吸引力了。在“云”里面有各种VM供你试用,我注册了一个账号试用了一下。
他们提供两种服务,Sauce Scout是手工测试的工具,用户可以选择操作系统和浏览器版本,然后就能拿到一台VM进行手工测试了;Sauce OnDemand是自动化测试服务,用户在本地写好脚本,然后脚本是运行在他们的云里面。
下面主要介绍Sauce OnDemand吧。如果你之前写过Selenium的测试脚本,那迁移到Sauce OnDemand的成本是很低的,只需要把本地的webdriver(接下来都会以WebDriver做例子)改成他们的remote driver就ok了。我是直接用的他们提供的example脚本:https://saucelabs.com/docs/ondemand/getting-started/env/python/se2/mac
跑完脚本以后看结果,这里才是重点。每跑一次任务,在他们的系统里面都会生成一个Job,这个Job所包含的信息想当详细。挑一些我认为比较有用的介绍:
- Build,如果你是通过CI系统来发起一次自动化测试的话,可以把Build的版本号记到Job里面
- Tags,这次跑的是Smoke还是Full的测试呢?是一个RC版本还是Live版本
- Custom Data,以上简单的信息都满足不了你的需求,可以自己传一个JSON格式的对象进去
测试出错怎么办?一切都在云?
- 视频回放功能 – 这个太好了,可以看看失败的测试当时是怎么跑的
- Log – 每一个操作都有Log,用什么方法拿到一个元素,输入了些什么东西
- 截图 – 某些操作会带有截图,也很有用
而且这些Log和Video都是可以下载的。
以上就是Sauce OnDemand的简单介绍,那可能有人会说,这样的功能,我自己的本地跑测试就可以了,为什么还要花钱搞到云里面去?把自动化测试并行起来!
假如执行1个自动化测试用例需要1分钟;覆盖10个平台+浏览器,串行执行就需要10分钟。假如并行执行,只需要1分钟就完成了。听起来很有吸引力吧。这里有一个用Python并行执行测试大概例子(不完整,没有真的调用测试,但是演示了如何进行并行):https://gist.github.com/511658 更多其他语言的并行测试例子: http://saucelabs.com/blog/index.php/tag/parallel-testing/
以上讲了那么多,貌似我说的是在测试“外网”站点啊!我不想先发布后测试,我要测试内网站点,怎么办?他们有个Sauce Connect可以搞定这个问题:) 另外还有一些API让用户获取测试结果。
总结:Sauce Labs提供了针对Selenium实施自动化测试的云服务,和别的云服务有点不一样,他们没有号称使用他们的服务可以降低成本:)