这个文档有点笼统,相信大家也都有自己的想法,我在这里写一些我自己的看法,请大家指教。
首先,会使用自动化测试工具的测试人员不能够称之为完全的自动化测试人员,这类测试人员被称为『工具小子』(Script Kid)。这个阶段还是处于自动化测试的一个比较低级的阶段,因为这些工具都不是测试人员开发的。
对于高手来说,要能写一些独立的测试脚本甚至测试工具。
更高的高手则是能脚本和工具和实际工作紧密结合起来,解决工作中遇到的问题。
一般来说,自动化测试分为三个层级:单元测试、接口测试和UI测试,这三层成一个金字塔形状分布。最底层是单元测试,接口测试在中间,UI测试在最上层。下面通过一个表格来对比着三层测试。
层级 | 所处位置 | 受益 | 测试对象 | 运行速度 | 定位问题难度 | 维护成本 |
---|---|---|---|---|---|---|
单元测试 | 底层 | 70% | 类或者方法 | 极快 | 十分容易 | 低 |
接口测试 | 中间 | 20% | 服务接口 | 快 | 一般 | 低 |
功能测试 | 上层 | 10% | 界面 | 慢 | 较难 | 非常高 |
不是说功能测试不好, 而是根据接口测试,与单元测试进行对比得到的结果!
单元测试无疑是最适合做自动化的,但是,大多数单元测试都是由研发人员自己完成。单元测试的代码行覆盖率能够达到70%,就是一个非常不错的程度了。测试人员不做单元测试,但是可以尝试推动研发人员来编写单元测试用例。
单元测试框架
目前,大众眼中关注的比较多的是UI的自动化测试,这是由大家的思维惯性导致的。传统的测试行业,测试工程师都是从UI下手,来完成所有的测试工作,所以到自动化领域,大家也理所当然的喜欢从UI层来进行自动化。做UI自动化,最重要的是要能有一个好的自动化测试框架,这里有一些框架的基本设计思路供大家参考:
以上 原文出自: https://blog.csdn.net/flying1943/article/details/51504651
接口的自动化是目前最适合测试工程师进行自动化的一层。接口不但变化小,运行速度快,受益高,还有着出现问题后能够很快定位的优点。(说白了, 就是我还不会单元测试)
顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型,测试类型又主要分为功能测试,性能测试,稳定性测试,安全性测试等。
在分层测试的“金字塔”模型中,接口测试属于第二层服务集成测试范畴。相比UI层(主要是WEB或APP)自动化测试而言,接口自动化测试收益更大,且容易实现,维护成本低,有着更高的投入产出比,是每个公司开展自动化测试的首选。
下面我们以一个HTTP接口为例,完整的介绍接口自动化测试流程:从需求分析到用例设计,从脚本编写、测试执行到结果分析,并提供完整的用例设计及测试脚本。
基本的接口功能自动化测试流程如下:
需求分析 -> 用例设计 -> 脚本开发 -> 测试执行 -> 结果分析
一般情况是 产品经理, 或者产品人员在原型, 或者需求文档评审完成以后, 开发人员会很久原型文档设计接口, 咱们接口测试人员就要根据开发设计出来的文档设计, 来分析接口和原型文档定义的是否完全, 同时根据接口设计用例.
到了这一步, 就要设计了, 不过,不用像功能测试用例那样, 设计的特别详细, 只需要有主流程, 或者流程分支的用例就好了, 毕竟自动化测试, 不是用来发现BUG的, 而是用来确定这个流程上, 是不是有问题.
这一步, 就有很多种选择了, 可以用 JMeter, postMan, readAPI, java, python 等等 测试工具都可以使用. 具体的我后面会写. (我使用过很多工具, 最后我决定了用灵活的编程语言python, 来写自动化接口测试. 没有复杂的语法, 却又有不一般的灵或性. )
这一步, 就简单了, 右键 RUN 所有工具全都是, 运行结果要保存起来, 不然, 根本不知道运行完了, 有没有问题.
比如说: 注册的接口, 注册完了, 数据库里有没有添加数据. 或者说, 查询接口,有没有吧数据库里的数据查询出来. 等等这都是需要断言的地方. 用一个专门的日志文件, 保存起来, 还有有专门的程序,去断言. 不然写完了, 也要自己去看, 这不能是自动化测试.
这个就是分上一步输出的日志, 或者说是断言结果.
接口测试吗, 可不是, 用个工具, 写个路径, 添点参数, 调用一下, 一看返回值是成功的, 就说这个接口就成功了.
实际上, 就一个简单的 添加数据,
用例要怎么设计, 脚本要怎么写, 执行结果要怎么看, 我后边会慢慢的更新, 求大家给个关注 谢谢了