• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用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进行接口自动化测试就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Windows下安装PHP单元测试环境PHPUnit图文教程
    • PHP单元测试利器 PHPUNIT深入用法(三)
    • PHP单元测试利器 PHPUNIT初探
    • PHP单元测试利器 PHPUNIT深入用法(二)
    • php单元测试phpunit入门实例教程
    • PHP单元测试PHPUnit简单用法示例
    • PHPUnit PHP测试框架安装方法
    • 详解Yaf框架PHPUnit集成测试方法
    • PHPUnit测试私有属性和方法功能示例
    • PHP测试框架PHPUnit组织测试操作示例
    • PHP单元测试框架PHPUnit用法详解
    上一篇:PHP本地进行API接口测试的实例
    下一篇:PHP服务器端API原理及示例讲解(接口开发)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    使用phpunit进行接口自动化测试 使用,phpunit,进行,接口,自动化,