46
回答
高手问答第 180 期 —— 测试老兵和你聊聊 Selenium 自动化测试之道

OSCHINA 本期高手问答(12 月 6 日 - 12 月 12 日)我们请来了@ziteng-sh 籽藤老师为大家解答关于 Selenium 以及自动化测试相关的问题。

籽藤,测试行业老兵,从事软件测试工作 8 年,Ping++ 质量负责人。Ping++ 主要帮企业解决支付问题,帮助企业迅速搭建收付款、账户余额充值打赏、多级商户分润管理等。目前已拥有近 25000 家优质企业客户,覆盖了电商、零售、旅游、教育、医疗等多个行业。典型客户包括摩拜单车、丁香园、凯德集团、21Cake 等。

自动化测试不是某一家公司或者团队组织需要考虑的问题,它应该是测试同行们的必经之路,是日常测试工作的手段之一。

自动化测试更不是熟练使用某一工具即可,它和开发一样,工具只是实现思路的一种方式,我们在乎的应该是如何获得实施自动化测试的思路。正所谓,测试技术或工具只是“指月之手”,我们追求的是“月亮”,是如何放心地迭代,快速地交付高品质的产品。

本期问答内容:

  • Selenium 自动化测试框架特色
  • 自动化测试的思路和技术实现
  • SaaS 企业自动化测试的设计与规划
  • 测试人员的职业规划
  • 相关实用工具推荐

或有其他相关问题,也欢迎大家积极提问!

为了鼓励踊跃提问,@ziteng-sh 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Selenium自动化测试之道》一书。

>>>点击这里进入购买地址

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Selenium 以及自动化测试方面的问题向@ziteng-sh 籽藤老师提问,请直接回帖提问。

传送门 >>> 往期 Web 测试主题的高手问答

举报
局长
发帖于10个月前 46回/3K+阅
共有46个答案 最后回答: 10个月前

@ziteng-sh  《Selenium自动化测试之道》一书是你写的吗?写了多久?写一本书,有什么好的方法分享吗?

--- 共有 1 条评论 ---
ziteng-sh书是我和团队的3个小伙伴共同完成的,我个人完成了前言和5个章节的内容。当时我在休产假,公司测试人员的招聘面临瓶颈,我们希望通过这本书吸引更多志同道合的人加入我们。于是,在团队的支持下,我答应了出版社的约稿,初稿编写近 5 个月。最后定稿差不多 1 年。我是个总结癖患者,内向却有点话唠,没事儿喜欢写一些乱七八糟的东西,写书对我而言是换了一种方式总结和倾诉,所以我没有什么独到的方法能分享给你。抱歉了~ 10个月前 回复

@ziteng-sh 现在自动化测试的脚本开发往往非常漫长,而公司的自动化测试需求却非常紧急,而BDD形式的测试脚本又不具有非常严格的格式规范和表述,我想问下,如何快速开发自动化测试脚本呢

引用来自“紫竹蜚凝”的评论

@ziteng-sh 现在自动化测试的脚本开发往往非常漫长,而公司的自动化测试需求却非常紧急,而BDD形式的测试脚本又不具有非常严格的格式规范和表述,我想问下,如何快速开发自动化测试脚本呢

脚本的开发效率,跟测试策略,框架的扩展性和可维护性,以及人员的技能水平都有关系。既然自动化的脚本开发这么漫长,为什么非要急着上自动化,不可以先手动呢?或者说,对于自动化脚本的维护时间和方式是不是可以调整?是否可以对测试框架进行重构?另外,你提到了 BDD。从我的理解,BDD 的 feature files 是可以很好地作为业务和技术人员的沟通方式的,它不是用来解决自动化测试某个单一层面的问题。如果“BDD形式的测试脚本又不具有非常严格的格式规范和表述”,是不是因为 feature files 结构和表述不合理呢?

--- 共有 2 条评论 ---
ziteng-sh 回复 @紫竹蜚凝 : 如果是前端控件定位的问题,一般来说,我会与前端开发童鞋一起来解决这个问题。一方面他们对前端技术更有经验,或许可以直接通过 execute js 的方法获取;另一方面,或许他们在开发前端页面的时候,就可以考虑测试自动化的可行性,为测试铺路。自动化测试虽是测试人员主导,但需要整合各方资源,才能把它在组织中的价值最大化。 10个月前 回复
紫竹蜚凝 @ziteng-sh 因为业务逻辑比较复杂,手动无法完整覆盖整个逻辑,因此急需自动化测试,而对应的业务界面中,控件的复杂程度很高,又无法快速提取对应控件,进而导致测试进度缓慢,因此想追问下,对应这样的场景,应该如何进行web自动化测试 10个月前 回复

引用来自“terry_hding”的评论

@ziteng-sh 你好,selenium是基于页面的自动化,开源, 但伴随着开源,与浏览器之间的兼容性有时会有问题,如Firefox升级比较快,而selenium更新不同步,导致以前能用的脚本都不能使用,也许这个可以用phantomJS来替代,但这也失去了最终用户交付时的环境,更悲剧的是selenium的效率问题,我想问一下有没有什么好办法能解决这个效率与兼容性的问题。

你好,看来大家都在同一个坑里挣扎过 :) 对于效率与兼容性的问题,我的想法是,测试不可能发现所有的问题,只能在有限的时间发现尽可能多的问题,或者说,先于我们的用户来发现问题并处理。虽说新版本的浏览器,会因为 driver 不兼容而导致 selenium 脚本不可用,但新版本的浏览器往往在终端用户群中使用频率并不高,可能不是兼容性测试的重点。而那些用户排名前5(也可能是前10,只是举例类比)的浏览器,才是我们需要考虑的。另外,我们可以加强监控,比如在页面中进行埋点的方式,增强用户反馈的体验等方式,收集使用过程中的问题。虽说这样的方式对于某些用户而言是滞后了,但从整体的产品交付来说,这是事半功倍的。

如果我们的自动化测试重点,确实是某个 selenium 不支持的版本,我们可以找其他测试解决方案,比如阿里开源的 F2etest(搭建在 Windows Server 上)。也可以加入 selenium slack 群,关注 selenium 动态,及时调整自动化测试规划。

@ziteng-sh能否介绍下selenium的一些常用的相关工具或者目前为止你们团队的一些项目实际的实践经验吗?比如为什么考虑采用selenium而不是其他的测试框架。考虑的依据是什么?

@ziteng-sh 之前基于Selenium做过UI自动化测试项目,Jenkins部署完触发测试,但是,Selenium对页面上异步不太友好,因为异步延时问题导致用例失败较常见,而且版本迭代过快,每次要花大量人力维护用例,测试因为较忙没有及时维护用例,导致一段时间后用例已经不能使用,这些有好的解决办法么

@ziteng–sh 您好,我是后端开发人员,总听说自动化测试但是还没见过,包括待过的公司都没有。我想请问自动化测试的适用场景是什么样的,比如我们每周都会上很多东西,但是很分散很小,难道为每个功能编写测试脚本?会不会很不值当。而回归测试看的东西又那么多,纯自动难道就不怕上线后出问题么?印象中是很尴尬的,总觉得十分离不开人,那有怎么叫自动化呢?求解,感谢!
顶部