下面小编就为大家分享一篇使用phpunit进行接口自动化测试,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
年初一个偶然的机会接触到了phpunit,一个用PHP编程语言开发的开源软件,也是一个单元测试框架,有效利用的话可以大大提高接口遍历的效率。废话不多说,直接干货。
1.安装
在php的目录下
pear channel-discover pear;
pear install phpunit/PHPUnit
2.配置
首先新建一个lib文件夹存放的配置文件,然后再新建一个transfer.php的文件
<?php
function do_Post($url, $fields, $extraheader = array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields );
curl_setopt($ch, CURLOPT_HTTPHEADER, $extraheader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
function do_Get($url, $extraheader = array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $extraheader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回:
//curl_setopt($ch, CURLOPT_VERBOSE, true);
$output = curl_exec($ch) ;
curl_close($ch);
return $output;
}
function do_Put($url, $fields, $extraheader = array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url ) ;
curl_setopt($ch, CURLOPT_POST, true) ;
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields );
curl_setopt($ch, CURLOPT_HTTPHEADER, $extraheader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回
//curl_setopt($ch, CURLOPT_ENCODING, '');
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
function do_Delete($url, $fields, $extraheader = array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url ) ;
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_HTTPHEADER, $extraheader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回
//curl_setopt($ch, CURLOPT_ENCODING, '');
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
最后新建一个basetest.php文件
<?php
require_once("transfer.php");
define("PREFIX", "http://xxx");
define("HTTPSPREFIX", "https://xxx");
function build_get_param($param) {
return http_build_query($param);
}
到此接口测试环境搭建完成。
3.编写测试用例
<?php
$basedir = dirname(__FILE__);
require_once($basedir . '/lib/basetestdev.php');
define("PHONE", "xxx");
define("PWD", "xxx");
define("POSTURL","xxx");
class TestAPI extends PHPUnit_Framework_TestCase {
private function call_http($path, $param, $expect = 'ok') {
$_param = build_get_param($param);
$url = PREFIX . "$path?" . $_param;
$buf = do_Get($url);
$obj = json_decode($buf, True);
$this->assertEquals($obj['retval'], $expect);
return $obj;
}
private function call_https($path, $param, $expect = 'ok') {
$_param = build_get_param($param);
$url = HTTPSPREFIX . "$path?" . $_param;
$buf = do_Get($url);
$obj = json_decode($buf, True);
$this->assertEquals($obj['retval'], $expect);
return $obj;
}
public function testLogin(){
$param = array(
'type' => 'phone'
,'token' => PHONE
,'password' => PWD
);
$url = 'login';
return $this->call_http($url, $param);
}
/**
* @depends testLogin
*/
public function testInfo(array $user){
$session = $user['retinfo']['session'];
$param = array(
'session' => $session
);
$url ='info';
return $this->call_http($url, $param);
}
如果为post请求
public function testPost(){
$session = $user['retinfo']['sessionid'];
$param = array(
,'data' => '111'
);
$url = POSTURL.'posturl';
return do_POST($url,$param);
}
以上这篇使用phpunit进行接口自动化测试就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:使用phpunit进行接口自动化测试


基础教程推荐
猜你喜欢
- php+mysql开发的最简单在线题库(在线做题系统)完整案例 2023-01-04
- Laravel修改验证提示信息为中文的示例 2023-03-08
- php生成短网址/短链接原理和用法实例分析 2023-04-20
- Laravel 解决composer相关操作提示php相关异常的问题 2023-03-08
- php去除deprecated的实例方法 2022-09-02
- php如何获取当前日期和星期 2024-12-06
- PHP laravel使用自定义邮件类实现发送邮件 2023-07-03
- PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br 2024-03-28
- PHP采用get获取url汉字出现乱码的解决方法 2024-03-28
- PHP基于反射机制实现自动依赖注入的方法详解 2022-10-02