最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用phpunit進(jìn)行接口自動(dòng)化測(cè)試

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

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

1.安裝

在php的目錄下

pear channel-discover pear; 
pear install phpunit/PHPUnit 

2.配置

首先新建一個(gè)lib文件夾存放的配置文件,然后再新建一個(gè)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;
}

最后新建一個(gè)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); 
} 

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

3.編寫測(cè)試用例

<?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請(qǐng)求

public function testPost(){ 
    $session = $user['retinfo']['sessionid']; 
    $param = array( 
      ,'data' => '111' 
    ); 
    $url = POSTURL.'posturl'; 
    return do_POST($url,$param); 
  } 

以上這篇使用phpunit進(jìn)行接口自動(dòng)化測(cè)試就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • php之Aes加密案例講解

    php之Aes加密案例講解

    這篇文章主要介紹了php之Aes加密案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • php四種基礎(chǔ)算法代碼實(shí)例

    php四種基礎(chǔ)算法代碼實(shí)例

    算法是程序的核心,今天我們就學(xué)習(xí)一下php的四種基礎(chǔ)算法:冒泡,選擇,插入和快速排序法。
    2013-10-10
  • php調(diào)用shell的方法

    php調(diào)用shell的方法

    這篇文章主要介紹了php調(diào)用shell的方法,包括相關(guān)的原理、注意事項(xiàng)及函數(shù)用法,需要的朋友可以參考下
    2014-11-11
  • PHP CURL采集百度搜尋結(jié)果圖片不顯示問題的解決方法

    PHP CURL采集百度搜尋結(jié)果圖片不顯示問題的解決方法

    這篇文章主要介紹了PHP CURL采集百度搜尋結(jié)果圖片不顯示問題的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • YII2框架中查詢生成器Query()的使用方法示例

    YII2框架中查詢生成器Query()的使用方法示例

    這篇文章主要介紹了YII2框架中查詢生成器Query()的使用方法,結(jié)合實(shí)例形式詳細(xì)分析了YII2查詢生成器Query()的基本功能與使用方法,需要的朋友可以參考下
    2020-03-03
  • PHP單鏈表的實(shí)現(xiàn)代碼

    PHP單鏈表的實(shí)現(xiàn)代碼

    單鏈表是一種鏈?zhǔn)酱嫒〉臄?shù)據(jù)結(jié)構(gòu),用一組地址任意的存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素。接下來通過本文給大家分享php單鏈表的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-07-07
  • Laravel關(guān)系模型指定條件查詢方法

    Laravel關(guān)系模型指定條件查詢方法

    今天小編就為大家分享一篇Laravel關(guān)系模型指定條件查詢方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 淺析THINKPHP的addAll支持的最大數(shù)據(jù)量

    淺析THINKPHP的addAll支持的最大數(shù)據(jù)量

    這篇文章主要介紹了THINKPHP的addAll支持的最大數(shù)據(jù)量,需要的朋友可以參考下
    2015-02-02
  • 在laravel中實(shí)現(xiàn)ORM模型使用第二個(gè)數(shù)據(jù)庫設(shè)置

    在laravel中實(shí)現(xiàn)ORM模型使用第二個(gè)數(shù)據(jù)庫設(shè)置

    今天小編就為大家分享一篇在laravel中實(shí)現(xiàn)ORM模型使用第二個(gè)數(shù)據(jù)庫設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 簡述PHP7.4 新特性和廢棄的功能

    簡述PHP7.4 新特性和廢棄的功能

    這篇文章主要介紹了簡述PHP7.4 新特性和廢棄的功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論

鄂尔多斯市| 祁门县| 通州市| 剑河县| 保山市| 巍山| 邛崃市| 定西市| 手机| 潢川县| 高密市| 临颍县| 苍山县| 闽清县| 偏关县| 吉木萨尔县| 团风县| 山东省| 枞阳县| 吉林省| 鹿泉市| 宽甸| 安龙县| 河池市| 嘉黎县| 常宁市| 邹城市| 横峰县| 黄骅市| 大方县| 泰州市| 托克逊县| 阿坝| 沙坪坝区| 济宁市| 鲜城| 云阳县| 北宁市| 兴文县| 苏州市| 晋宁县|