Skip to main content

install

Doc:https://codeception.com/docs

codeception

Install

composer require "codeception/codeception" --dev

API Testing

composer require "codeception/module-rest" --dev

php vendor/bin/codecept generate:suite Api

Config

api.suite.yml

actor: ApiTester
suite_namespace: Tests\Api
modules:
enabled:
- REST:
url: nginx:8081
depends: PhpBrowser
part: Json

API Create Test

php vendor/bin/codecept generate:cest Api CreateUser

Coding

<?php
namespace Tests\Api;

use \Tests\Support\ApiTester;

class CreateUserCest
{
public function _before(ApiTester $I)
{
}

public function usableUserLoginToTest(ApiTester $I)
{
$I->sendPost('/api/access/token',
[
'account' => 'admin',
'password' => '123456'
]);
$I->seeResponseCodeIsSuccessful();
$I->seeResponseCodeIs(HttpCode::OK); // 200
$I->seeResponseMatchesJsonType(['status' => 'integer']);
$I->seeResponseJsonMatchesJsonPath('$data');
}

public function invalidUserLoginTest(ApiTester $I)
{
$I->sendPost('/api/access/token',
[
'account' => 'ju',
'password' => '123456'
]);
$I->seeResponseCodeIsClientError();
$I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
$I->seeResponseMatchesJsonType(['status' => 'integer']);
$I->seeResponseContainsJson(['status' => 1,'error'=>'用户状态已失效']);
}

public function faultUserInfoLoginTest(ApiTester $I){
$I->sendPost('/api/access/token',
[
'account' => 'ju111',
'password' => '123456'
]);
$I->seeResponseCodeIsClientError();
$I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
$I->seeResponseMatchesJsonType(['status' => 'integer']);
$I->seeResponseContainsJson(['status' => 1,'error'=>'用户不存在或密码有误']);
}

}

Run!

php vendor/bin/codecept run 
--help
--steps #在输出中显示步骤