Maison  >  Article  >  cadre php  >  Comment effectuer des tests d’interface dans ThinkPHP6 ?

Comment effectuer des tests d’interface dans ThinkPHP6 ?

王林
王林original
2023-06-12 12:31:401581parcourir

Avec le développement rapide de la technologie Internet, les tests d'interface sont de plus en plus devenus un élément indispensable du processus de développement logiciel. ThinkPHP6 est un framework de développement PHP très populaire lors des tests d'interface, nous pouvons utiliser le framework de test PHPUnit pour les tests. Cet article présentera en détail comment effectuer des tests d'interface dans ThinkPHP6, afin que vous puissiez effectuer des tests plus facilement.

1. Installez PHPUnit

Étant donné que PHPUnit est un framework de test tiers, nous devons d'abord installer PHPUnit. Nous pouvons installer PHPUnit en installant Composer :

  1. Ouvrez le terminal ou l'interface de ligne de commande et entrez la commande suivante pour installer Composer :
$ curl -sS https://getcomposer.org/installer | php
  1. Installez PHPUnit :
$ php composer.phar require phpunit/phpunit

Une fois l'installation terminée, nous pouvons commencer les tests d'interface. .

2. Écrire des cas de test

Dans ThinkPHP6, nous pouvons écrire des cas de test dans le dossier tests. Ensuite, nous créons d'abord un dossier de cas de test :

$ mkdir tests/TestCase

Ensuite, créons un fichier de cas de test ApiTest.php sous le dossier TestCase :

$ touch tests/TestCase/ApiTest.php

Ensuite, nous pouvons écrire un simple cas de test d'interface dans le fichier ApiTest.php. Supposons que l'interface que nous voulons tester est /api/user/info et renvoie des informations sur l'utilisateur. Nous pouvons écrire le cas de test suivant :

<?php

namespace testsTestCase;

use PHPUnitFrameworkTestCase;

class ApiTest extends TestCase
{
    public function testGetUserInfo()
    {
        $url = 'http://localhost/api/user/info';
        $response = file_get_contents($url);
        $this->assertStringContainsString('user_name', $response);
        $this->assertStringContainsString('user_email', $response);
    }
}

Dans ce cas de test, nous utilisons la méthode assertStringContainsString fournie avec PHPUnit pour vérifier si les informations utilisateur renvoyées contiennent les deux champs user_name et user_email. Si les deux champs sont présents, le test réussit.

3. Configurer l'environnement de test

Avant d'effectuer des tests d'interface, nous devons d'abord configurer l'environnement de test. Ensuite, nous prenons la configuration de l'environnement de test comme exemple pour présenter en détail comment configurer l'environnement de test dans ThinkPHP6.

Tout d'abord, nous devons créer une base de données de test pour stocker les données de test. Nous pouvons exécuter la commande suivante dans MySQL pour créer une base de données :

$ mysql -u root -p
mysql> CREATE DATABASE test;

Ensuite, nous devons modifier le fichier de configuration de la base de données et configurer les informations de connexion à la base de données avec les informations de connexion à la base de données que nous venons de créer. Nous pouvons modifier les informations de la base de données dans le fichier config/database.php :

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'test',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

Ensuite, ajoutez le contenu suivant au fichier phpunit.xml :

<!-- 数据库配置 -->
<php>
    <env name="DB_TYPE" value="mysql" />
    <env name="DB_HOST" value="127.0.0.1" />
    <env name="DB_NAME" value="test" />
    <env name="DB_USER" value="root" />
    <env name="DB_PASS" value="" />
</php>

De cette façon, nous pouvons utiliser la base de données de test dans l'environnement de test pour tester .

4. Exécuter le test

Une fois l'environnement de test configuré, nous pouvons exécuter le test. Nous pouvons entrer le répertoire racine du projet dans l'interface de ligne de commande et saisir la commande suivante pour exécuter le test :

$ ./vendor/bin/phpunit tests/TestCase/ApiTest.php

Si le scénario de test s'exécute avec succès, les informations suivantes seront affichées :

PHPUnit 9.5.2 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 00:00.012, Memory: 6.00 MB

OK (1 test, 2 assertions)

Cela signifie que notre scénario de test d'interface a réussi le test. Si le test échoue, PHPUnit affichera les informations d'erreur pertinentes et nous pourrons effectuer des réparations en fonction des informations d'erreur.

5. Résumé

Cet article présente en détail comment effectuer des tests d'interface dans ThinkPHP6, de l'installation de PHPUnit à l'écriture de cas de test, en passant par la configuration de l'environnement de test et l'exécution des tests, tous sont expliqués un par un. J'espère que cet article pourra aider les lecteurs dans le besoin et rendre tout le monde plus détendu et heureux lors des tests d'interface.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn