欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用phpunit進行接口自動化測試

 更新時間:2018年03月21日 10:04:26   作者:愛吃燒麥的管  
下面小編就為大家分享一篇使用phpunit進行接口自動化測試,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

年初一個偶然的機會接觸到了phpunit,一個用PHP編程語言開發(fā)的開源軟件,也是一個單元測試框架,有效利用的話可以大大提高接口遍歷的效率。廢話不多說,直接干貨。

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); // 獲取數(shù)據(jù)返回
  $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); // 獲取數(shù)據(jù)返回:
  //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); // 獲取數(shù)據(jù)返回
  //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); // 獲取數(shù)據(jù)返回
  //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); 
} 

到此接口測試環(huán)境搭建完成。

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進行接口自動化測試就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • PHP大文件分片上傳的實現(xiàn)方法

    PHP大文件分片上傳的實現(xiàn)方法

    在網(wǎng)站開發(fā)中,經(jīng)常會有上傳文件的需求,有的文件size太大直接上傳,經(jīng)常會導(dǎo)致上傳過程中耗時太久,大量占用帶寬資源,因此有了分片上傳。接下來通過本文給大家介紹PHP大文件分片上傳的實現(xiàn)方法,需要的朋友可以參考下
    2018-10-10
  • 老生常談ThinkPHP中的行為擴展和插件(推薦)

    老生常談ThinkPHP中的行為擴展和插件(推薦)

    下面小編就為大家?guī)硪黄仙U凾hinkPHP中的行為擴展和插件(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 關(guān)于laravel 日志寫入失敗問題匯總

    關(guān)于laravel 日志寫入失敗問題匯總

    今天小編就為大家分享一篇關(guān)于laravel 日志寫入失敗問題匯總,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • php網(wǎng)上商城購物車設(shè)計代碼分享

    php網(wǎng)上商城購物車設(shè)計代碼分享

    我們要做的是一個可以包含促銷活動的購物車,所以比較其他簡單的購物車,會稍微復(fù)雜一點。(用的是PHP的zend framework框架)
    2012-02-02
  • java微信開發(fā)之上傳下載多媒體文件

    java微信開發(fā)之上傳下載多媒體文件

    這篇文章主要為大家詳細介紹了java微信開發(fā)之簡單實現(xiàn)上傳下載多媒體文件的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • php arsort 數(shù)組降序排序詳細介紹

    php arsort 數(shù)組降序排序詳細介紹

    php arsort函數(shù)用于將數(shù)組中的元素按照降序進行排序,如果排序成功則返回true,否則返回false,本文章向大家講解arsort函數(shù)的基本語法及使用實例,需要的朋友可以參考下
    2016-11-11
  • 微信公眾號判斷用戶是否已關(guān)注php代碼解析

    微信公眾號判斷用戶是否已關(guān)注php代碼解析

    這篇文章主要大家詳細解析了微信公眾號判斷用戶是否已關(guān)注php代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Yii2.0框架behaviors方法使用實例分析

    Yii2.0框架behaviors方法使用實例分析

    這篇文章主要介紹了Yii2.0框架behaviors方法使用,結(jié)合實例形式分析了yii2.0框架控制器 behaviors 過濾數(shù)據(jù)相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2019-09-09
  • 一個自定義位數(shù)的php多用戶計數(shù)器代碼

    一個自定義位數(shù)的php多用戶計數(shù)器代碼

    一個自定義位數(shù)的php多用戶計數(shù)器代碼...
    2007-03-03
  • Laravel 5.4.36中session沒有保存成功問題的解決

    Laravel 5.4.36中session沒有保存成功問題的解決

    這篇文章主要給大家介紹了關(guān)于Laravel 5.4.36中session沒有保存成功問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02

最新評論