国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PHP接口自動(dòng)化測(cè)試框架實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了PHP接口自動(dòng)化測(cè)試框架實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

我們來(lái)看一個(gè)簡(jiǎn)單的PHP實(shí)現(xiàn)的超簡(jiǎn)單的接口。

...

//報(bào)名驗(yàn)證
private function apply_verify() {
    $raid = $this->input->get_post('raid');
    $mid = $this->input->get_post('mid');

    if (!$raid || !$mid) {
        $this->ret_json(10021, '參數(shù)錯(cuò)誤');
    }

    $this->load->model('enlist_model');
    $result = $this->enlist_model->get_enlist_by_raid_mid($raid, $mid, true);
    if (!empty($result)) {
        $this->ret_json(10101, '你已經(jīng)報(bào)過(guò)名');
    }
}

說(shuō)明:

  • 首先,它是一個(gè)POST接口。它需要兩個(gè)參數(shù):raid 和 mid。
  • 然后,判斷raid 和 mid 是否為空,為空返回:參數(shù)錯(cuò)誤。
  • 最后,調(diào)用 enlist_model 模型,通過(guò)?get_enlist_by_raid_mid方法查詢是否為空,如果不為空返回:你已經(jīng)報(bào)過(guò)名了。

接下來(lái)要做的事情不是寫用例,而是構(gòu)造一條已經(jīng)報(bào)名的數(shù)據(jù)。

創(chuàng)建?xx_enlist_test_data.php?文件

array(
    'table_name'=>'xx_enlist',
    'data'=>array(
        array('eid'=>1,'raid'=>99,'mid'=>150,'phone'=>'01234567890'),
    )
)

當(dāng)自動(dòng)化在執(zhí)行之前,會(huì)先到數(shù)據(jù)庫(kù)的?xx_enlist?表插入這條數(shù)據(jù),為什么要初始化數(shù)據(jù)?當(dāng)然是為了保證接口測(cè)試用例的穩(wěn)定性。比如,我在調(diào)用接口時(shí),傳入?raid=99, mid=150。如果數(shù)據(jù)庫(kù)是表空的?那么,用例肯定失敗了!如何保證這條用每次運(yùn)行 100% 成功呢?當(dāng)然是每次執(zhí)行之前再對(duì)應(yīng)的表中初始化這么一條數(shù)據(jù)了!

定義的數(shù)據(jù)怎么插入到數(shù)據(jù)庫(kù)中,當(dāng)然是有一層解析的,將上面的數(shù)據(jù)庫(kù)轉(zhuǎn)成一條SQL語(yǔ)句執(zhí)行。上面的數(shù)據(jù)當(dāng)然比原生的一條插入SQL語(yǔ)句好寫。

最后,才是開(kāi)始寫用例。創(chuàng)建interface_enlist_test.php測(cè)試文件。

class Interface_enlist_test extends InterfaceTestCase
{
    //初始化數(shù)據(jù)
    public function db_fixtures()
    {
        return array(
            array(
                'data_file' => 'xx_enlist_test_data.php',
                'truncate'  => true
            ),
        );
    }


    /*
    * 報(bào)名驗(yàn)證
    * raid不傳
    */
    public function test_post_enlist_raid_null()
    {
        $result = $this -> request('enlist/apply_verify',array(),array('mid'=>150));
        $this->assertEquals($result['status'],'10021');
        $this->assertEquals($result['message'],"參數(shù)錯(cuò)誤");
    }

    /*
    * 報(bào)名驗(yàn)證
    * mid不傳
    */
    public function test_post_enlist_mid_null()
    {
        $result = $this -> request('enlist/apply_verify',array(),array('raid'=>99));
        $this->assertEquals($result['status'],'10021');
        $this->assertEquals($result['message'],"參數(shù)錯(cuò)誤");
    }

    /*
    * 報(bào)名驗(yàn)證
    * 用戶已報(bào)名
    */
    public function test_post_enlist_verify_success()
    {
        $result = $this -> request('enlist/apply_verify',array(),array('raid'=>99, 'mid'=>150));
        $this->assertEquals($result['status'],'10101');
        $this->assertEquals($result['message'],"你已經(jīng)報(bào)過(guò)名");
    }
}

這里的用例我就做過(guò)多解釋了。調(diào)用接口寫斷言。

答疑環(huán)節(jié)

我知道你們大概會(huì)有哪些疑問(wèn),接下來(lái),我將試著解答這些疑問(wèn)。

1、我怎么知道接口調(diào)用了哪些表?

首先你要懂PHP編程,然后熟悉Web開(kāi)發(fā)框架,申請(qǐng)代碼查看權(quán)限,閱讀接口處理邏輯,自然就知道接口調(diào)用哪些表。

2、看不懂開(kāi)發(fā)代碼怎么辦?

學(xué)唄!我當(dāng)年也不是一下子就看懂PHP代碼的,前后也學(xué)了兩三個(gè)月。

3、往數(shù)據(jù)庫(kù)里面插入測(cè)試數(shù)據(jù),有重復(fù)的怎么辦?

我們當(dāng)時(shí)的設(shè)計(jì)是,框架在運(yùn)行時(shí)會(huì)自動(dòng)化的修改被測(cè)試的接口項(xiàng)目將數(shù)據(jù)庫(kù)指到我本地,也就是說(shuō)我本地有一個(gè)跟測(cè)試環(huán)境一模一樣的數(shù)據(jù)庫(kù),每次在插入數(shù)據(jù)之前先清空表。
要保證本地?cái)?shù)據(jù)庫(kù)的表結(jié)構(gòu)和測(cè)試環(huán)境是一樣的。這其實(shí)也不難,開(kāi)發(fā)如果改到表會(huì)上傳SQL腳本,我只需要在本地?cái)?shù)據(jù)庫(kù)執(zhí)行一下就行了。

4、這樣做接口測(cè)試有什么好處?

  • 首先,接口用例超級(jí)穩(wěn)定,穩(wěn)定是自動(dòng)化測(cè)試的?大敵?,做過(guò)自動(dòng)化的同學(xué)知道我在說(shuō)什么。在保證數(shù)據(jù)的基礎(chǔ)上,如果用例失敗了, 100% 是接口邏輯被改動(dòng)到了。
  • 不依賴接口文檔,有幾個(gè)公司的接口文檔是非常詳細(xì),且及時(shí)維護(hù)的?我這種方式不需要接口文檔。
  • 不?盲測(cè),盲測(cè)就是把接口的參數(shù),每個(gè)類型試一遍,然后再排列組合,如果你不知道接口要調(diào)用哪個(gè)表的哪個(gè)字段來(lái)判斷條件,那么這種盲測(cè)依然覆蓋不到接口的所有處理邏輯。
  • 當(dāng)然更裝X(玩笑~?。瑢?shí)際情況是你測(cè)試接口的水平即全面又深入,比只會(huì)用 postman 盲測(cè)的同學(xué)厲害多了。
  • 反向促進(jìn)接口代碼質(zhì)量,因?yàn)榈慕涌谟美帉懯腔陂喿x接口代碼的,有一個(gè)新來(lái)的PHP開(kāi)發(fā)被我叫到面前幾次,并直接指出對(duì)方的代碼邏輯錯(cuò)誤之后(分分鐘教他怎么做開(kāi)發(fā),哈哈!),它的接口提測(cè)質(zhì)量一下子提高了許多。

5、這樣做接口測(cè)試的缺點(diǎn)是什么?

  • 不適合所有團(tuán)隊(duì),不是每個(gè)測(cè)試都懂開(kāi)發(fā)代碼的,比如,我們現(xiàn)在的接口用GO,如果我現(xiàn)在想達(dá)到無(wú)障礙閱讀GO接口代碼,也需要較高的學(xué)習(xí)成本。
  • 不適合大型項(xiàng)目,我之前之所以可在這么玩,主要也是因?yàn)镻HP項(xiàng)目不大,如果是一個(gè)大型項(xiàng)目的話就不適合了,在微服務(wù)的架構(gòu)下,你甚至很難理清一個(gè)接口的調(diào)用關(guān)系。

不過(guò),我仍然認(rèn)為這是一個(gè)優(yōu)秀的接口測(cè)試工程師應(yīng)該努力的方法。接口測(cè)試平臺(tái)解決的只是測(cè)試效率問(wèn)題如何把一個(gè)接口測(cè)好?當(dāng)然是理解好需求,并有能力閱讀接口處理邏輯,設(shè)計(jì)出有效和全面的接口用例。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-623807.html

到了這里,關(guān)于PHP接口自動(dòng)化測(cè)試框架實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PHP項(xiàng)目如何自動(dòng)化測(cè)試

    PHP項(xiàng)目如何自動(dòng)化測(cè)試

    開(kāi)發(fā)和測(cè)試 測(cè)試和開(kāi)發(fā)具有同等重要的作用 從一開(kāi)始,測(cè)試和開(kāi)發(fā)就是相向而行的。測(cè)試是開(kāi)發(fā)團(tuán)隊(duì)的一支獨(dú)立的、重要的支柱力量。 測(cè)試要具備獨(dú)立性 獨(dú)立分析業(yè)務(wù)需求,獨(dú)立配置測(cè)試環(huán)境,獨(dú)立編寫測(cè)試腳本,獨(dú)立開(kāi)發(fā)測(cè)試工具。沒(méi)有獨(dú)立性,就沒(méi)有一切。 測(cè)試要有

    2024年01月18日
    瀏覽(25)
  • 【Python+requests+unittest+excel】實(shí)現(xiàn)接口自動(dòng)化測(cè)試框架

    【Python+requests+unittest+excel】實(shí)現(xiàn)接口自動(dòng)化測(cè)試框架

    一、框架結(jié)構(gòu): ?工程目錄 二、Case文件設(shè)計(jì) 三、基礎(chǔ)包 base 3.1 封裝get/post請(qǐng)求(runmethon.py) 3.2 封裝mock(mock.py) 四、數(shù)據(jù)操作包 operation_data 4.1 獲取excel單元格中的內(nèi)容(get_data.py) ? 4.2?獲取excel中每個(gè)列(data_config.py) 4.3?解決數(shù)據(jù)依賴(dependent.py?) 五、工具類包 to

    2024年02月15日
    瀏覽(25)
  • 如何處理PHP開(kāi)發(fā)中的單元測(cè)試和自動(dòng)化測(cè)試?

    如何處理PHP開(kāi)發(fā)中的單元測(cè)試和自動(dòng)化測(cè)試?

    如何處理PHP開(kāi)發(fā)中的單元測(cè)試和自動(dòng)化測(cè)試,需要具體代碼示例 隨著軟件開(kāi)發(fā)行業(yè)的日益發(fā)展,單元測(cè)試和自動(dòng)化測(cè)試成為了開(kāi)發(fā)者們重視的環(huán)節(jié)。PHP作為一種廣泛應(yīng)用于Web開(kāi)發(fā)的腳本語(yǔ)言,單元測(cè)試和自動(dòng)化測(cè)試同樣也在PHP開(kāi)發(fā)中扮演著重要的角色。本文將介紹如何處理

    2024年02月04日
    瀏覽(25)
  • java基礎(chǔ) - 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Http接口功能自動(dòng)化測(cè)試框架(HttpClient + TestNG)

    java基礎(chǔ) - 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Http接口功能自動(dòng)化測(cè)試框架(HttpClient + TestNG)

    已知現(xiàn)在已經(jīng)用Spring boot框架搭建了一個(gè)簡(jiǎn)單的web服務(wù),并且有現(xiàn)成的Controller來(lái)處理http請(qǐng)求,以之前搭建的圖書管理服務(wù)為例,BookController的源碼如下: 在搭建一個(gè)Http接口功能自動(dòng)化測(cè)試框架之前,我們需要思考幾個(gè)問(wèn)題: 1、http請(qǐng)求的發(fā)送,使用什么實(shí)現(xiàn)? 2、接口返回的

    2024年02月05日
    瀏覽(28)
  • 自動(dòng)化測(cè)試(三):接口自動(dòng)化pytest測(cè)試框架

    自動(dòng)化測(cè)試(三):接口自動(dòng)化pytest測(cè)試框架

    API:Application Programming Interface 接口自動(dòng)化按照自動(dòng)化的工具可分為 基于 接口測(cè)試工具 的接口自動(dòng)化 eg1:Postman+Newman+git/Svn+Jenkins(基于Javascript語(yǔ)言)接口自動(dòng)化 Postman :創(chuàng)建和發(fā)送 API 請(qǐng)求,并對(duì)響應(yīng)進(jìn)行斷言和驗(yàn)證。 Newman : Postman 的命令行工具,它允許測(cè)試人員在沒(méi)有界

    2024年02月10日
    瀏覽(94)
  • 接口自動(dòng)化測(cè)試框架

    接口自動(dòng)化測(cè)試框架

    另外,現(xiàn)階段流行推薦使用:Python+unittest+requests+HTMLTestRunner框架 ??Java Rest-assured 是使用代碼來(lái)實(shí)現(xiàn)接口的請(qǐng)求,封裝業(yè)務(wù)流程,對(duì)于公司的業(yè)務(wù)支持比較高,靈活度很強(qiáng),可以通過(guò)代碼的方式打造自己公司的接口自動(dòng)化框架,上手有點(diǎn)難度,需要有Java 編程基礎(chǔ),才可以使用

    2024年02月04日
    瀏覽(19)
  • 接口自動(dòng)化測(cè)試框架設(shè)計(jì)

    接口自動(dòng)化測(cè)試框架設(shè)計(jì)

    測(cè)試系統(tǒng)間接口的一種測(cè)試,測(cè)試的對(duì)象主要是接口,主要是測(cè)試外部系統(tǒng)與所測(cè)試系統(tǒng)之間以及內(nèi)部系統(tǒng)之間的交互點(diǎn)。 前后端分離,通過(guò)測(cè)試保證服務(wù)端的正確性 基于安全考慮,前端驗(yàn)證很容易跳過(guò)。 BUG更容易定位 自動(dòng)化測(cè)試落地性價(jià)比更高,比UI更穩(wěn)定 測(cè)試提前,降

    2024年01月19日
    瀏覽(25)
  • pytest接口測(cè)試自動(dòng)化框架

    目錄 pytest簡(jiǎn)介及安裝 pytest的使用規(guī)則 pytest運(yùn)行方式 主函數(shù)方式 命令行方式 跳過(guò)、標(biāo)記及預(yù)期失敗特殊場(chǎng)景處理 pytest前后置、夾具 pytest高級(jí)用法fixture pytest接口斷言 pytest結(jié)合allure-pytest生成allure測(cè)試報(bào)告 ????????談起用例管理框架:python中的unittest、pytest;java中的test

    2024年02月06日
    瀏覽(100)
  • postman接口自動(dòng)化測(cè)試框架實(shí)戰(zhàn)!

    postman接口自動(dòng)化測(cè)試框架實(shí)戰(zhàn)!

    把人對(duì)軟件的測(cè)試行為轉(zhuǎn)化為由機(jī)器執(zhí)行測(cè)試行為的一種實(shí)踐。 例如GUI自動(dòng)化測(cè)試,模擬人去操作軟件界面,把人從簡(jiǎn)單重復(fù)的勞動(dòng)中解放出來(lái)。 本質(zhì)是用代碼去測(cè)試另一段代碼,屬于一種軟件開(kāi)發(fā)工作,已經(jīng)開(kāi)發(fā)完成的用例還必須隨著被測(cè)試對(duì)象的改變而更新,因此,還

    2024年02月11日
    瀏覽(36)
  • 從零搭建完整python自動(dòng)化測(cè)試框架(UI自動(dòng)化和接口自動(dòng)化

    從零搭建完整python自動(dòng)化測(cè)試框架(UI自動(dòng)化和接口自動(dòng)化

    總體框架 PO模式、DDT數(shù)據(jù)驅(qū)動(dòng)、驅(qū)動(dòng) 框架技術(shù)選擇 框架運(yùn)行結(jié)果 各用例對(duì)應(yīng)的定義方式(PO/DDT) 測(cè)試執(zhí)行結(jié)果 從零開(kāi)始搭建項(xiàng)目 一、開(kāi)發(fā)環(huán)境搭建 二、新建項(xiàng)目 三、基礎(chǔ)功能實(shí)現(xiàn) 1. 配置功能實(shí)現(xiàn)(Conf) 2. 日志功能實(shí)現(xiàn)(Log) 3. 讀取EXCEL實(shí)現(xiàn)(data) 4. 郵件發(fā)送實(shí)

    2024年02月07日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包