美文网首页
YII2 自动化REST API 测试----codecepti

YII2 自动化REST API 测试----codecepti

作者: 安晓生 | 来源:发表于2020-06-19 14:09 被阅读0次

代码实例是基于YII2框架使用的。
下面我来进行如何使用。
composer安装
下面这几个插件都可以安装。
不过建议安装在:dev


composer require codeception/codeception
composer require codeception/verify
composer require codeception/specify

我安装的实例:

"require-dev": {
        "yiisoft/yii2-faker": "~2.0.0",
        "codeception/codeception": "~3.0.0",
        "codeception/verify": "~1.0.0",
        "codeception/specify": "~1.1",
        "phpunit/phpunit": "~7.5.10",
        "symfony/browser-kit": ">=2.7 <=4.2.4"
    },

安装完毕之后,我们继续下面的工作。执行:
这样会创建一个文件夹test跟codeception.yml

windows:php vendor\codeception\codeception\codecept bootstrap
linux: vendor\bin\codecept bootstrap

执行完毕后,我们需要进行修改文件了,
这是我自己的文件。

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    helpers: tests/_support
settings:
    bootstrap: _bootstrap.php
    memory_limit: 1024M
    colors: true
modules:
    config:
        Yii2:
            configFile: 'config/codeception-local.php'

然后在执行一下,在test文件下创建另一个文件api.suite.yml

linux:vendor\bin\codecept generate:suite api
windwos:php vendor\codeception\codeception\codecept generate:suite api

进行修改这个文件

actor: ApiTester
modules:
  enabled:
    - enabled: [PhpBrowser, REST]
    - REST:
        depends: PhpBrowser
        url: 你的域名
        part: Json
    - Yii2:
        part: [orm, fixtures]

开进构造

linux: vendor\bin\codecept generate:cest api CreateUser

windows: php vendor\codeception\codeception\codecept generate:cest api CreateUser 

写测试

 // tests文件
    public function tryToTest(ApiTester $I)
    {
        $I->sendPOST(';你的访问地址,['page'=>1,'ter_account'=>1]);
        $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK); // 200
        $I->seeResponseIsJson();
//        $I->seeResponseContains('"code":1');
        $I -> seeResponseContainsJson( ['code'=>1] );
//        $I ->dontSeeResponseContainsJson(["ter_account"=>"16678786767"]);
    }
我自己写的:我的是有加密跟token的。

public function _before(ApiTester $I)
    {
        $I->haveHttpHeader('Signature', Api::sign());
    }

    public function tryToTest(ApiTester $I)
    {
        $I->sendGET('/product/estates/1/share');
        echo PHP_EOL. $I->grabResponse() . PHP_EOL;
    }

最好进行运行测试:

linux: vendor\bin\codecept run api
 
windows: php vendor\codeception\codeception\codecept run api
 
# api后面可指定文件名,不加会执行所有测试文件

有疑问可以评论,我会及时回复。

相关文章

网友评论

      本文标题:YII2 自动化REST API 测试----codecepti

      本文链接:https://www.haomeiwen.com/subject/eupvxktx.html