在测试前需确保Ubuntu系统已安装PHP及Web服务器(Apache/Nginx)。若未安装,可通过以下命令快速部署LAMP(Linux+Apache+MySQL+PHP)环境:
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
sudo systemctl restart apache2 # 重启Apache以应用配置
安装完成后,将PHP接口文件(如api.php)放置在Apache的默认文档根目录/var/www/html下。
适用于简单的GET请求接口测试。将浏览器地址栏输入接口文件的URL(如http://your_server_ip/api.php),若接口返回JSON或其他预期结果(如{"name":"John Doe","email":"john@example.com"}),则说明接口基本可用。
注意:此方法仅能测试GET请求,无法模拟POST、PUT等复杂请求。
Postman是一款专业的API测试工具,可模拟各种HTTP请求(GET、POST、PUT、DELETE等),并查看响应状态码、头部、 body 等内容。
sudo snap install postman)。http://your_server_ip/api.php)。cURL是Linux下的命令行工具,可快速发送HTTP请求并查看响应,适合脚本化测试。
curl -X GET http://your_server_ip/api.php # GET请求
curl -X POST -d '{"key1":"value1","key2":"value2"}' -H "Content-Type: application/json" http://your_server_ip/api.php # POST请求(带JSON数据)
-X:指定请求方法(GET/POST/PUT/DELETE等);-d:发送的请求体数据(如JSON、表单数据);-H:添加请求头部(如Content-Type: application/json)。若不想配置Apache/Nginx,可使用PHP内置的轻量级服务器,适合开发阶段快速验证接口。
/var/www/html),运行以下命令:php -S localhost:8000
http://localhost:8000/api.php,即可查看接口响应。若需验证接口的业务逻辑(如数据库查询、数据处理),可使用PHPUnit进行单元测试。
composer require --dev phpunit/phpunit
ExampleTest.php文件,继承PHPUnit\Framework\TestCase,编写以test开头的方法:use PHPUnit\Framework\TestCase;
class ApiTest extends TestCase {
public function testApiEndpoint() {
$response = file_get_contents('http://localhost:8000/api.php');
$this->assertEquals(200, http_response_code()); // 验证状态码
$this->assertJson($response); // 验证返回内容为JSON
$data = json_decode($response, true);
$this->assertArrayHasKey('name', $data); // 验证JSON中包含"name"字段
}
}
vendor/bin/phpunit ExampleTest.php
PHPUnit将输出测试结果(如通过/失败)。以上方法覆盖了从快速验证到自动化测试的不同场景,可根据需求选择合适的方式测试PHP接口。