This time I will bring you the implementation of the phpunit interface automated testing function. What are the precautions for the implementation of the phpunit interface automated testing function. The following is a practical case, let's take a look.
I came into contact with phpunit by chance at the beginning of the year, an open source software developed with PHPprogramming language, and also a unit testing framework. If used effectively, the interface can be greatly improved. Traversal efficiency. Not much nonsense, let’s get straight to the point.
1.Install
In the directory of php
pear channel-discover pear; pear install phpunit/PHPUnit
2.Configuration
First create a configuration file stored in the lib folder, then create a new transfer.php file
<?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; }
Finally create a basetest.php file
<?php require_once("transfer.php"); define("PREFIX", "http://xxx"); define("HTTPSPREFIX", "https://xxx"); function build_get_param($param) { return http_build_query($param); }
The interface test environment is now set up.
3. Write test cases
<?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); }
If it is a post request
public function testPost(){ $session = $user['retinfo']['sessionid']; $param = array( ,'data' => '111' ); $url = POSTURL.'posturl'; return do_POST($url,$param); }
I believe you have read it You have mastered the method in the case of this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
ThinkPHP implements WeChat payment (jsapi payment) process tutorial detailed explanation_php example
PHP’s WeChat refund application
The above is the detailed content of Implementation of automated testing function of phpunit interface. For more information, please follow other related articles on the PHP Chinese website!