arlauskas/cassette-generator

为vcr磁带生成文件

v1.1.4 2022-01-21 13:24 UTC

This package is auto-updated.

Last update: 2024-09-05 19:55:21 UTC


README

安装

composer require --dev arlauskas/cassette-generator

用法

vendor/bin/vcg vcg_config.yaml

配置示例

vcg_config.yaml

record-defaults:
    request:
        method: POST
        url: "'http://127.0.0.1:8080/soap'"
        headers:
            Host: "'127.0.0.1:8080'"
            Content-Type: "'text/xml; charset=utf-8;'"
            SOAPAction: "'http://tempuri.org/'"
    response:
        status:
            http_version: "'1.1'"
            code: "'200'"
            message: OK
        headers:
            Cache-Control: private
            Content-Length: "'196'"
            Content-Type: "'text/xml; charset=utf-8'"
            Server: Microsoft-IIS/8.0
            X-AspNet-Version: 4.0.30319
            X-Powered-By: ASP.NET
            Date: "'Wed, 10 Feb 2021 07:35:56 GMT'"
cassettes-settings:
    -
        name: 'integration_tests'
        input-dir: './assets/'
        output-dir: './output/'
        cassettes:
            -
                output-file: 'login_process.yaml'
                records:
                    -
                        request: 'find_user_request.xml'
                        response: 'find_user_response.xml'
                        append:
                            'request|headers|SOAPAction': 'IAppService/FindUser'
                        rewrite:
                            'response|headers|Date':
                    -
                        request: 'user_login_request.xml'
                        response: 'user_login_response.xml'
                        append:
                            'request|headers|SOAPAction': 'IAppService/Login'
                        rewrite:
                            'response|headers|Date':
            -
                output-file: 'registration_process.yaml'
                records:
                    -
                        request: 'check_code_request.xml'
                        response: 'check_code_response.xml'
                        append:
                            'request|headers|SOAPAction': 'IAppService/CheckCode'
                        rewrite:
                            'response|headers|Date':
                    -
                        request: 'pass_code_request.xml'
                        response: 'pass_code_response.xml'
                        append:
                            'request|headers|SOAPAction': 'IAppService/PassCode'
                        rewrite:
                            'response|headers|Date':

find_user_request.xml

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
    <SOAP-ENV:Body>
        <ns1:FindUser>
            <ns1:User>test@example.com</ns1:User>
        </ns1:FindUser>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

find_user_response.xml

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
    <SOAP-ENV:Body>
        <ns1:FindUserResponse>
            <ns1:FindUserResult>true</ns1:FindUserResult>
        </ns1:FindUserResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

配置参考

record-defaults

每个记录都将提供默认信息。

cassettes-settings

在这里,您将提供如何查看文件结构的配置。磁带将被写入文件,每个文件将包含一个或多个记录。 record-defaults 数据将被提供到每个记录中。

requestresponse 将尝试从磁带持有者的 input-dir 中查找文件。

append 将添加由 record-defaults 设置提供的数据。

rewrite 将替换由 record-defaults 设置提供的数据。

每个磁带将被写入到目录 output-dir 中,并以 output-file 命名。