丙午🐎年

acc8226 的博客

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)的特性。如果启用,该特性在从一个表中删除行时删除所有相关的数据。例如,举例如果启用级联删除并且从客户表中删除某个顾客,则任何关联的订单行也会被自动删除。

阅读全文 »

关键字介绍

SQL 是由关键字组成的语言,关键字是一些用于执行 SQL 操作的特殊词汇。在命名数据库、表、列和其他数据库对象时,一定不要使用这些关键字。因此,这些关键字是一定要保留的。

show

所支持的其他 SHOW 语句还有:

  • SHOW STATUS,用于显示广泛的服务器状态信息;
  • SHOW CREATE DATABASE 和 SHOW CREATE TABLE,分别用来显示创建特定数据库或表的 MySQL 语句;
  • SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
  • SHOW ERRORS 和 SHOW WARNINGS,用来显示服务器错误或警告消息。

显示所有可用的字符集以及每个字符集的描述和默认校对。
show character set;

阅读全文 »

Windows 上安装 MySQL

MySQL 下载地址为: MySQL 下载 。 这里我们挑选 MySQL Community Server。拿到压缩包后我们将进行解压后配置启动。这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下。

打开刚刚解压的文件夹 C:\web\mysql-8.0.11,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[client]
# 设置 mysql 客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置 3306 端口
port = 3306
# 设置 mysql 的安装目录
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
阅读全文 »
0%