codeception 接口级测试(一)- 安装与运行

背景

上线过程中,很多次都出现修改的代码影响到了其他的业务。然而,测试过程中,不可能面面俱到,所以导致,代码冗余出很多,后期也不好维护。
基于以上,想到了一个方法,那就是写测试用例。但是,单元测试用例,要求现有代码模块化较高,实践困难。所以我们只做了接口级别的测试,用于保证线上不报错,基本功能完全可以使用,并且可以简单地测试驱动开发。

安装

1
2
3
4
sudo curl -LsS https://codeception.com/codecept.phar -o /usr/local/bin/codecept
sudo chmod a+x /usr/local/bin/codecept # 添加执行权限

# 之后可以使用 codecept 命令了

初始化

1
2
codecept bootstrap
codecept init api

Bootstrap 命令会生成如下的结构:

bootstrap 之后的结果

生成一个测试用例文件:

1
2
3
generate:cept         Generates empty Cept file in suite
generate:cest Generates empty Cest file in suite
generate:test Generates empty unit test file in suite

cept: 单独的测试文件

像是这样的:

1
2
3
4
<?php
$I->click('Login');
$I->fillField('#input-username', 'John Dough');
$I->pressKey('#input-remarks', 'foo');

cest:测试类,里面包含多个测试方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
class BasicCest
{
public function _before(ApiTester $I)
{
}

public function _after(ApiTester $I)
{
}

// tests
public function tryToTest(ApiTester $I)
{
}
}

生成新的 suite

默认情况下,没有 api suite,需要生成才能使用。

1
codecept generate:suite api

生成 api 之后的目录结构:

generate api 之后

但是这样生成之后,可以看到 _generated 文件夹里面,并没有 api 的帮助类

需要执行 :

1
codecept build

build 之后的结果

运行接口测试

1
codecept run api

output:
测试完成