初尝phpunit进行接口自动化测试
来源:互联网 发布:网吧网络是多少兆宽带 编辑:程序博客网 时间:2024/04/30 08:06
年初一个偶然的机会接触到了phpunit,一个用PHP编程语言开发的开源软件,也是一个单元测试框架,有效利用的话可以大大提高接口遍历的效率。废话不多说,直接干货。
1.安装
在php的目录下
pear channel-discover pear;pear install phpunit/PHPUnit
2.配置
首先新建一个lib文件夹存放的配置文件,然后再新建一个transfer.php的文件
<?phpfunction 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文件
<?phprequire_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); }
0 0
- 初尝phpunit进行接口自动化测试
- 接口自动化测试系列之PHPUnit-接口测试基础
- 接口自动化测试系列之PHPUnit-接口测试的步骤
- 接口自动化测试PHPUnit-引入jenkins自动化执行
- phpunit 自动化测试
- 接口自动化测试系列之PHPUnit介绍和环境搭建
- 接口自动化测试系列之PHPUnit-第一次亲密接触
- 接口自动化测试系列之PHPUnit-框架设计构思
- 接口自动化测试PHPUnit-框架代码开发1
- 接口自动化测试之PHPUnit-框架代码编写2
- 接口自动化测试PHPUnit-框架代码开发3
- 接口自动化测试之PHPUnit-完结以及源码发放
- 使用 PHPUnit 进行测试
- 接口自动化测试系列之PHPUnit-GET请求接口测试方法
- 接口自动化测试系列之PHPUnit-POST请求接口测试方法
- 使用Fitnesse进行接口自动化测试
- 使用Fitnesse进行接口自动化测试
- 使用Fitnesse进行接口自动化测试
- 全面解读微信小程序 你想知道的都有
- CSS学习笔记
- mysql 连接池 不够用问题
- css分割线
- 数据挖掘十大经典算法
- 初尝phpunit进行接口自动化测试
- class template
- 【Android 基础】GridView中使用ImageLoader
- Web项目中预览PDF
- 第5课 Python函数库分类及函数标准库示例
- 通过Time、Window与Trigger比较Google Cloud DataFlow与Apache Flink的区别
- 开发:web.py(上)
- MipMap与LOD是何物?
- iOS 图片被渲染的解决方法