文章 答疑

测试人员年薪 50w 必备技能

移动互联网发展到现在,软件测试这个角色在工程中变得越来越重要。每一年也有越来越多的人进入软件测试这个行业。软件测试从以前比较单纯的一个角色变成了现在综合能力要求很强的角色。 软件测试本身包括功能测试、接口测试、自动化测试、单元测试、性能测试、专项测试等。而测试人员在越来越快的项目迭代中也会和 PM、PD、Dev、SQA 等各种角色打交道。这些也让现在的测试工作越来越多元化。 在测试人员在追求自身提升的同时,相信大部分的测试也会有另一个追求——收入。本专题希望达到的目的:能够让大家从更高的高度全局的来了解软件测试,同时从别人的职业经历中能少走更多的弯路。最终祝愿大家收入都多多up。

ReadyAPI 从入门到放弃

作者简介:曾经常年沉浸在Web产品,API,性能测试等各类项目中,现在常干一些持续集成,流程体系的杂活。喜欢折腾,关注所有可以提高效率和质量的话题。

ReadyAPI 的入门到放弃之路,是一家创业公司的测试团队从0到1的发展之路。在怎样的快速迭代和团队资源下,选择了ReadyAPI 进行 RESTful API 测试?ReadyAPI 如何支持多套测试环境,脚本参数化,检查点?如何与Jenkins集成?在两年的实践过程中,ReadyAPI 达到了怎样的效果,是如何配合团队成长的?最终又为何选择放弃?本文将向你一一道来。

背景

2015 年1月我加入一家提供 SaaS 服务的创业公司。当时每周有一次常规版本迭代,不定期的 hotfix 上线。众所周知,每一次的版本更新都有可能引入风险。在这样频繁的版本迭代之下,团队对测试的期望是,将对外公开的 RESTful API 服务作为测试环节的重中之重,确保覆盖每一个接口的每一个字段,将版本更新的风险降到最低。

一般来说,一项 code change 完整的测试过程是:

  1. 开发人员提交代码到分支,测试人员在测试环境中针对该分支进行测试。

  2. 分支测试通过后,开发人员合并代码到 master ,测试人员在测试环境中针对 master 进行验证。

  3. 测试通过之后即可上线。版本上线之后,测试人员在生产环境进行验证。

上述过程还未包括回归测试过程,测试人员针对 bugs 的复测,以及预发布环境的环节,接口的压力测试等等,可见实际的测试工作量之大。而当时,测试团队只有我一个人,而我并不知道何时会有下一个小伙伴加入。不论是从提高工作效率的角度,还是团队沉淀的需要,API 的测试自动化都是势在必行。

工具选型

在我加入之前,API 测试主要是开发人员通过 Chrome插件 DHC(现又称“Restlet Client”),Postman 之类的 REST API 客户端工具来验证可用性。尽管现在这两款工具都越来越强大,支持多环境 URL切换,Assertion 设置等功能,但在两年前,它们的功能比较单薄,可编程性不强,不能算是专业的测试工具。

对于任何工具的选型,我认为都不应该脱离团队与业务当下的实际情况与发展趋势。当时对 API 测试工具的需求归纳为以下几点。

  • 软需求:

    • 上手快,学习成本低。虽然当时测试人员只有我一人,但招聘一直在进行中。我不能选择一款非常依赖某种特定编程语言的工具,这无异于对招聘提高了难度,更何况大量依赖编程语言写的脚本,在 testcase failed 的情况下,要花费的 debug 时间可能会长一些。最好是图形界面友好,测试人员只需要关注测试接口本身,不需要花很多时间去学习“如何实现”测试操作。

    • 社区氛围好,技术资源充足。创业团队的时间宝贵,还是使用业界的“知名”工具吧,即便有坑也大多被前人踩过了。

  • 硬需求:

    • 强大的配置功能。可配置多个环境的 Root Url,以及该环境特有的测试数据。可以做到一套脚本,适用于多个环境,方便切换。

    • 强大的 Assertion 功能。无论是检查响应状态码,还是Header,又或者检查某个字段是否存在,检查该字段的类型,字段的值,甚至是检查该字段是否符合某一项规则,都可以方便添加检查点。

    • 支持数据驱动,以及测试场景之间的逻辑调用。对于单个接口而言,往往要针对一个字段测试多个值。对于多个接口相关联的场景而言,经常会遇到接口 B 的执行,要依赖接口 A 的响应结果;又或者要等到异步处理,需要设置 Think time。

    • 可编程性:可以使用编程语言生成接口签名"

2017年5月23日,周二晚8点30分,常年沉浸在Web产品,API,性能测试等各类项目中,也干一些持续集成,流程体系杂活。一枚创业公司测试老兵的籽藤带来了主题为《ReadyAPI 从入门到放弃》的交流。以下是主持人张爽整理的问题精华,记录了作者和读者间问答的精彩片段。


内容提要:

  • 用过Robot framework吗?对比过吗?你不自己写基于httpclient的 API 测试代码吗?有没有做过对比?
  • 举例说明下除了 Http Request 这种 step,Soapui 还有哪些常用的 steps?
  • 接口测试目前主流工具是什么?还有就是做接口测试,有哪些知识我要了解?有什么书推荐吗?
  • API 的话对于一些返回值比较模糊的情况,这种一般怎么解决比较好?
  • httpclient也是专门做 API 测试的,封装了get请求之类的方法,你有对比过吗?
  • 想了解下你们接口功能,性能,安全都是怎么做的?
  • API 测试到底测的是什么?是黑盒测试还是白盒测试?
  • Soapui 项目管理规范,需要注意一些什么?
  • python脚本,实现接口自动化测试,遇到的困难是什么?局限是什么?
  • 当项目要做接口测试的时候,怎么进行接口测试工具或框架的选择?比如一个Java项目,一般会怎么做接口测试?接口测试遇到困难时期一般怎么做?

问:用过Robot framework吗?对比过吗?你不自己写基于httpclient的 API 测试代码吗?有没有做过对比?

答: 在文末其实我已经说明,ReadyAPI 已经不是我们团队 API 测试的主要方式了,我们现在就是自己写脚本作为 client。Robot framework 我用过,只是玩票性质,没有用在项目里。"

即可阅读本专题全部文章

打开微信"扫一扫",将本文章分享到朋友圈

快给朋友分享吧!

收藏 收藏

1236人已收藏