乙巳🐍年

acc8226 的博客

接口测试到底测什么

接口测试为什么重要?

我相信你一定听说过这样一句话:“测试要尽早介入,测试进行得越早,软件开发的成本就越低,就越能更好地保证软件质量。”但是如何尽早地进入测试,作为软件测试工程师的你,是不是也没办法说得清楚呢?其实上面那句话中的“测试”,所指的并不是测试工程师这个人,而是指包含了单元测试、接口测试、界面测试等一系列质量保障活动的测试工作。

接口是什么?

接口就是有特定输入和特定输出的一套逻辑处理单元,而它不用知道自身的内部实现逻辑,这也可以叫做接口的黑盒处理逻辑。

而从上面的例子你也可以看到,由于服务对象不同,接口又可以分为两种,一种是系统或服务的内部接口,一种是外部依赖接口。

阅读全文 »

案例:如何把流程化的测试脚本抽象为测试框架?

为什么要开发自己的测试框架?

我们说到了用 Postman 来完成接口测试,但随着你的接口测试项目逐渐增加,你会发现越来越难以管理它的脚本,虽然测试工具导出的测试脚本也可以存放到代码仓库,但是,如果只是通过代码来查看是很难看懂的,你必须用原来的测试工具打开,才能更容易看懂原来的脚本做了什么样的操作。

搭建测试框架,不要纠结于技术选型在

做接口测试脚本开发的技术选型上,我更建议你根据自己的技术实力和技术功底来选择,而不要以开发工程师的技术栈来选择。

我们作为测试工程师,无论是使用自动化的接口测试,还是界面的手工测试,第一目标都是保障交付项目的质量,那些业务侧的表现,在大多数情况下不是我们关心的重点

用你的框架完成多接口测试

测试框架的形成是在撰写大量测试脚本的过程中不断抽象封装出来的,然后,再用这个不断完善的框架,改写原有的测试脚本。循环往复这个过程,你就会慢慢获得一个独一无二的、又完全适合你工作的接口测试框架。

阅读全文 »

WebSocket接口:如何测试一个完全陌生的协议接口?

未知的新协议接口并不可怕

那在面对一个陌生的新协议时,测试工程师的首要任务是什么呢?在我看来,就是要测试接口的正确逻辑、错误逻辑是否满足最初的需求,因此,我们需要快速地掌握验证手段。

第一次接触 WebSocket 接口

由于技术栈问题,我没办法借助开发工程师的力量完成接口测试任务,因此我接下来想到的是,借助一些自己已经熟悉的工具来完成本次测试。我第一个想到的就是我们在之前课程中一起使用过的 Fiddler,因为在任何一个接口项目开始时,无论开发是不是给了我接口文档,我都会先用 Fiddler 访问看一下。

可以借助 Fiddler 分析 WebSocket 的接口,这也和我们一开始给 Fiddler 这款工具的定位一样,那就是通过它辅助分析我们的被测接口。

自己写 WebSocket 测试代码

我发现 Python 提供了 WebSocket 的协议库,因此我只要用它完成客户端的撰写,就可以进行接口测试了。这里,我写下了第一个 WebSocket 的调用代码(这里我们以 http://www.websocket.org/demos/echo/ 为例),如下面图中所示,我在代码里面写了详细的注释,你肯定能看懂每一句话的意思。

阅读全文 »

约束

约束(constraint)管理如何插入或处理数据库数据的规则。

主键约束
表中任意列只要满足以下条件,都可以用于主键。

  • 任意两行的主键值都不相同。
  • 每行都具有一个主键值(即列中不允许 NULL值)。
  • 包含主键值的列从不修改或更新。(大多数 DBMS 不允许这么做,但如果你使用的 DBMS 允许这样做,好吧,千万别!)
  • 主键值不能重用。如果从表中删除某一行,其主键值不分配给新行。

外键约束
外键是表中的一列,其值必须列在另一表的主键中。外键是保证引用完整性的极其重要部分。

提示:外键有助防止意外删除,除帮助保证引用完整性外,外键还有另一个重要作用。在定义外键后,DBMS 不允许删除在另一个表中具有关联行的行。例如,不能删除关联订单的顾客。删除该顾客的唯一方法是首先删除相关的订单(这表示还要删除相关的订单项)。由于需要一系列的删除,因而利用外键可以防止意外删除数据。有的 DBMS 支持称为级联删除(cascading delete)的特性。如果启用,该特性在从一个表中删除行时删除所有相关的数据。例如,举例如果启用级联删除并且从客户表中删除某个顾客,则任何关联的订单行也会被自动删除。

阅读全文 »
0%