亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        HTTP異步接口性能測(cè)試方案設(shè)計(jì)與實(shí)踐

        2020-06-16 10:41:08
        關(guān)鍵詞:調(diào)用邏輯數(shù)據(jù)庫(kù)

        孫 立 哲

        (公安部第三研究所eID事業(yè)部 上海 201204)

        0 引 言

        隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)絡(luò)用戶數(shù)增多,并發(fā)訪問量加大,分布式應(yīng)用系統(tǒng)在高并發(fā)可用性方面面臨巨大的挑戰(zhàn)。為了提高系統(tǒng)的高并發(fā)性能,分布式應(yīng)用系統(tǒng)內(nèi)部設(shè)計(jì)多采用異步處理模式。隨著互聯(lián)網(wǎng)應(yīng)用技術(shù)復(fù)雜性不斷提高,高效的測(cè)試技術(shù)和工具逐漸成為高質(zhì)量應(yīng)用的必要保證。

        HTTP接口即基于HTTP協(xié)議、可遠(yuǎn)程訪問的接口,是分布式應(yīng)用系統(tǒng)[1]的一種技術(shù)實(shí)現(xiàn)。HTTP協(xié)議是互聯(lián)網(wǎng)上客戶端瀏覽器或其他程序與Web服務(wù)器之間的應(yīng)用層通信協(xié)議[2]。接口是預(yù)先定義的函數(shù),旨在提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力。接口內(nèi)部實(shí)現(xiàn)對(duì)特定業(yè)務(wù)處理邏輯的封裝,接口調(diào)用方只需按接口調(diào)用規(guī)則進(jìn)行訪問即可完成特定業(yè)務(wù)的處理,無需關(guān)注內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。

        根據(jù)接口內(nèi)部業(yè)務(wù)處理模式不同,HTTP接口可分為同步接口和異步接口。同步接口是指請(qǐng)求方以HTTP請(qǐng)求方式訪問服務(wù)端HTTP接口,接口收到請(qǐng)求并完成全部業(yè)務(wù)處理后將結(jié)果以HTTP響應(yīng)方式直接返回給請(qǐng)求方。異步接口是指請(qǐng)求方以HTTP請(qǐng)求方式訪問服務(wù)端HTTP異步接口,請(qǐng)求參數(shù)中需包含一個(gè)用于接收異步處理結(jié)果的HTTP回調(diào)接口地址,接口收到請(qǐng)求并在完成部分業(yè)務(wù)處理后以HTTP響應(yīng)方式將處理結(jié)果返回給請(qǐng)求方(即同步返回),或者不做任何業(yè)務(wù)處理直接以HTTP響應(yīng)方式返回一定數(shù)據(jù)以告知請(qǐng)求已收到,之后HTTP接口內(nèi)部再啟動(dòng)新線程處理后續(xù)業(yè)務(wù)并訪問請(qǐng)求方提供的回調(diào)接口將結(jié)果發(fā)給請(qǐng)求方(即異步返回)。HTTP異步接口業(yè)務(wù)流程圖如圖1所示。

        圖1 HTTP異步接口的業(yè)務(wù)處理流程圖

        JMeter[3]是Apache組織開發(fā)的基于Java的壓力測(cè)試工具,以其開源、小巧以及功能強(qiáng)大等優(yōu)勢(shì)而備受青睞[4]。它可用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,在不同壓力類別下測(cè)試它們的強(qiáng)度及分析整體性能。JMeter支持對(duì)Web服務(wù)HTTP接口的性能壓測(cè)[5],但其在HTTP異步接口的性能壓測(cè)方面存在一定的局限性。JMeter對(duì)HTTP接口的壓測(cè)只能覆蓋到同步接口和異步接口的同步處理邏輯,無法覆蓋到異步接口內(nèi)部的異步處理邏輯。單獨(dú)使用JMeter對(duì)HTTP異步接口進(jìn)行的性能壓測(cè)不能覆蓋接口內(nèi)部完整業(yè)務(wù)處理邏輯,因此JMeter的壓測(cè)結(jié)果不能反映出接口自身的真實(shí)性能情況。

        本文根據(jù)HTTP異步接口內(nèi)部業(yè)務(wù)實(shí)現(xiàn)特性,結(jié)合JMeter支持純Java腳本編寫的特點(diǎn),設(shè)計(jì)了一套集JMeter工具、MySQL數(shù)據(jù)庫(kù)表設(shè)計(jì)[6]、模擬接口測(cè)試樁設(shè)計(jì)以及自定義Java腳本設(shè)計(jì)等為一體的性能測(cè)試方案。該方案能夠覆蓋HTTP異步接口完整業(yè)務(wù)處理邏輯,且通過在真實(shí)產(chǎn)品中進(jìn)行性能壓測(cè)實(shí)踐,證明了該方案的可行性與實(shí)效性,彌補(bǔ)了JMeter在異步接口性能壓測(cè)中所表現(xiàn)出的不足。

        1 性能測(cè)試方案設(shè)計(jì)與實(shí)現(xiàn)

        性能測(cè)試方案的整體思路及具體實(shí)現(xiàn)按整個(gè)壓測(cè)過程可分為壓測(cè)前準(zhǔn)備、JMeter壓測(cè)與數(shù)據(jù)收集以及結(jié)果統(tǒng)計(jì)分析三部分。

        1.1 壓測(cè)前準(zhǔn)備

        本性能測(cè)試方案所需測(cè)試環(huán)境主要涉及JMeter客戶機(jī)、被壓測(cè)接口所在服務(wù)器、模擬回調(diào)接口測(cè)試樁所在JBoss服務(wù)器、MySQL數(shù)據(jù)庫(kù)服務(wù)器。性能測(cè)試環(huán)境整體架構(gòu)如圖2所示。

        圖2 性能測(cè)試環(huán)境整體架構(gòu)圖

        壓測(cè)前準(zhǔn)備主要完成MySQL數(shù)據(jù)庫(kù)服務(wù)搭建與數(shù)據(jù)庫(kù)表設(shè)計(jì)、模擬接口調(diào)用方的HTTP回調(diào)接口測(cè)試樁設(shè)計(jì)與實(shí)現(xiàn)及基于JBoss服務(wù)的部署、被壓測(cè)接口作特定處理,以及各服務(wù)器和JMeter所在客戶機(jī)環(huán)境性能調(diào)優(yōu)。

        搭建MySQL服務(wù)器,創(chuàng)建數(shù)據(jù)庫(kù),設(shè)計(jì)數(shù)據(jù)表[7]。針對(duì)單級(jí)HTTP異步接口,即接口內(nèi)部不調(diào)用其他異步接口,只需設(shè)計(jì)兩個(gè)數(shù)據(jù)表即可。一個(gè)為請(qǐng)求表,用于記錄被壓測(cè)HTTP接口收到的請(qǐng)求數(shù)據(jù),一個(gè)為響應(yīng)表,用于記錄被壓測(cè)接口異步響應(yīng)數(shù)據(jù)。表字段設(shè)計(jì)分別見表1和表2。

        表1 請(qǐng)求表

        表2 響應(yīng)表

        針對(duì)二級(jí)HTTP異步接口,即接口內(nèi)部又調(diào)用其他異步接口,需作擴(kuò)展設(shè)計(jì),即設(shè)計(jì)四個(gè)數(shù)據(jù)表。其中:三個(gè)請(qǐng)求表依次分別記錄被壓測(cè)HTTP接口收到的請(qǐng)求數(shù)據(jù)、被壓測(cè)接口內(nèi)部調(diào)用其他異步接口時(shí)下發(fā)的HTTP請(qǐng)求數(shù)據(jù)、被壓測(cè)接口的回調(diào)接口收到的HTTP請(qǐng)求數(shù)據(jù);一個(gè)響應(yīng)表記錄被壓測(cè)接口的回調(diào)接口返回的異步響應(yīng)數(shù)據(jù)。針對(duì)多級(jí)HTTP異步接口,可按上述邏輯繼續(xù)作擴(kuò)展設(shè)計(jì)。

        被壓測(cè)接口在接口內(nèi)部增加兩部分特定業(yè)務(wù)處理。一是在請(qǐng)求處理開始之前將請(qǐng)求串插入MySQL庫(kù)請(qǐng)求表,二是將異步返回的響應(yīng)數(shù)據(jù)按要求插入MySQL庫(kù)響應(yīng)表。增加特定業(yè)務(wù)處理后的流程圖如圖3所示。

        圖3 HTTP異步接口性能測(cè)試特有業(yè)務(wù)流程圖

        搭建JBoss服務(wù)器,使用Java腳本基于Web Servlet技術(shù)[8]開發(fā)模擬請(qǐng)求方的HTTP回調(diào)接口的測(cè)試樁并打包成Web存檔文件部署在JBoss服務(wù)上。測(cè)試樁接口內(nèi)部業(yè)務(wù)邏輯為接收被壓測(cè)接口異步返回的數(shù)據(jù)并按預(yù)定要求作出響應(yīng)。為確保各服務(wù)器之間有良好的通信性能,需設(shè)定各測(cè)試用服務(wù)器在硬件與操作系統(tǒng)等配置方面與被壓測(cè)接口所在服務(wù)器保持一致,MySQL數(shù)據(jù)庫(kù)服務(wù)和JBoss服務(wù)在線程池、日志等級(jí)等方面作性能最優(yōu)配置。整套測(cè)試環(huán)境在同一局域網(wǎng)內(nèi)。

        1.2 JMeter壓測(cè)與數(shù)據(jù)收集

        使用JMeter合理設(shè)計(jì)測(cè)試計(jì)劃,對(duì)HTTP異步接口進(jìn)行壓測(cè)并在壓測(cè)過程中收集接口請(qǐng)求數(shù)據(jù)和異步返回的響應(yīng)數(shù)據(jù):1) 在JMeter測(cè)試計(jì)劃中,針對(duì)被壓測(cè)接口新建一線程組,在線程組中添加取樣器“HTTP請(qǐng)求”,并配置接口請(qǐng)求地址、請(qǐng)求方式及請(qǐng)求參數(shù)等數(shù)據(jù)。2) 使用JMeter配置元件“用戶定義的變量”定義請(qǐng)求串中可配且有可能需手動(dòng)調(diào)整的參數(shù),如數(shù)據(jù)庫(kù)配置信息等。使用JMeter配置元件“CSV Data Set Config”讀取需要從數(shù)據(jù)庫(kù)中提取的批量測(cè)試數(shù)據(jù),在此之前需編寫自定義Java腳本實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中提取批量數(shù)據(jù)并生成測(cè)試所需逗號(hào)分隔值(Comma-Separated Values,CSV)數(shù)據(jù)文件。3) 在JMeter前置處理器“BeanShell PreProcessor”中編寫Java腳本,調(diào)用事先用Java腳本編寫并打包好的自定義Jar包,實(shí)現(xiàn)對(duì)請(qǐng)求參數(shù)的特定處理,如對(duì)某請(qǐng)求參數(shù)數(shù)據(jù)加密或作簽名等。4) 使用JMeter斷言“響應(yīng)斷言”判斷被壓測(cè)接口同步返回的響應(yīng)數(shù)據(jù)是否正確。5) 使用JMeter監(jiān)聽器“察看結(jié)果樹”檢查短時(shí)間高并發(fā)下異常信息,在長(zhǎng)時(shí)間高并發(fā)下需禁用“察看結(jié)果樹”以確保JMeter自身性能良好。6) 使用JMeter監(jiān)聽器“聚合報(bào)告”記錄并顯示壓測(cè)結(jié)果。

        根據(jù)實(shí)際性能需求,在線程組的線程屬性和調(diào)度器配置中分別配置并發(fā)用戶數(shù)和壓測(cè)持續(xù)時(shí)間,啟動(dòng)JMeter壓測(cè)。JMeter壓測(cè)過程中,將被壓測(cè)接口的請(qǐng)求數(shù)據(jù)和異步返回的響應(yīng)數(shù)據(jù)分別插入MySQL數(shù)據(jù)庫(kù)請(qǐng)求表和響應(yīng)表中。

        1.3 結(jié)果統(tǒng)計(jì)分析

        對(duì)JMeter壓測(cè)結(jié)果以及壓測(cè)過程中收集的請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)作統(tǒng)計(jì)分析:1) 通過分析JMeter聚合報(bào)告結(jié)果,可評(píng)估異步接口中同步處理業(yè)務(wù)的性能。2) 采用自定義Java腳本對(duì)MySQL庫(kù)請(qǐng)求表和響應(yīng)表中的數(shù)據(jù)作統(tǒng)計(jì)分析,評(píng)估HTTP異步接口內(nèi)部完整業(yè)務(wù)的性能。

        具體分析步驟:1) 比對(duì)請(qǐng)求表中記錄數(shù)和響應(yīng)表中記錄數(shù)是否一致,若不一致,則說明有失敗的請(qǐng)求,若一致則繼續(xù)后續(xù)比對(duì)分析。2) 逐條讀取請(qǐng)求表中的記錄,根據(jù)業(yè)務(wù)流水號(hào)字段值到響應(yīng)表中去查找對(duì)應(yīng)記錄。若能找到,則繼續(xù)檢查響應(yīng)數(shù)據(jù)是否正確,若正確則本次HTTP請(qǐng)求處理成功,若不正確則本次請(qǐng)求失敗。若根據(jù)業(yè)務(wù)流水號(hào)未能在響應(yīng)表中查找到對(duì)應(yīng)記錄,則本次HTTP請(qǐng)求失敗。3) 在逐條讀取請(qǐng)求表中記錄并作比對(duì)分析的過程中,統(tǒng)計(jì)記錄HTTP請(qǐng)求成功總數(shù)和失敗總數(shù)。若HTTP請(qǐng)求成功總數(shù)與請(qǐng)求表中記錄總數(shù)相等,則說明HTTP異步接口在高并發(fā)壓力下均能成功處理各HTTP請(qǐng)求。若不等,用請(qǐng)求失敗總數(shù)除以總請(qǐng)求數(shù)得到出錯(cuò)率。4) 針對(duì)請(qǐng)求成功的記錄,根據(jù)響應(yīng)表中記錄的業(yè)務(wù)處理時(shí)間與請(qǐng)求表中對(duì)應(yīng)記錄的業(yè)務(wù)處理時(shí)間計(jì)算本次HTTP請(qǐng)求的處理耗時(shí)。統(tǒng)計(jì)所有成功的請(qǐng)求中的最大響應(yīng)耗時(shí)、最小響應(yīng)耗時(shí)和平均響應(yīng)耗時(shí)。

        2 二級(jí)異步調(diào)用接口性能壓測(cè)擴(kuò)展實(shí)踐

        2.1 二級(jí)異步調(diào)用接口實(shí)例

        某身份標(biāo)識(shí)產(chǎn)品對(duì)外提供的短信服務(wù)(Short Messaging Service,SMS)簽名接口是一個(gè)復(fù)雜的二級(jí)異步調(diào)用接口,其向第三方服務(wù)提供的回調(diào)接口也是異步接口。SMS簽名接口及其回調(diào)接口相關(guān)的完整業(yè)務(wù)流程如圖4所示。

        圖4 SMS簽名接口完整業(yè)務(wù)處理流程圖

        SMS簽名業(yè)務(wù)完整處理邏輯分兩個(gè)階段,第一階段為從請(qǐng)求方向SMS簽名接口發(fā)送請(qǐng)求開始到SMS簽名接口向第三方服務(wù)下發(fā)短信下行(以下簡(jiǎn)稱“MT”)請(qǐng)求為止,第二階段為從第三方服務(wù)向MO回調(diào)接口發(fā)送請(qǐng)求開始到短信上行(以下簡(jiǎn)稱“MO”)回調(diào)接口向請(qǐng)求方發(fā)送異步處理結(jié)果為止。

        2.2 性能測(cè)試方案擴(kuò)展實(shí)現(xiàn)

        根據(jù)性能測(cè)試方案中所述針對(duì)二級(jí)異步調(diào)用接口的數(shù)據(jù)庫(kù)表設(shè)計(jì)方法,在MySQL數(shù)據(jù)庫(kù)中新建四個(gè)表,分別為SMS簽名請(qǐng)求表、SMS簽名短信下行請(qǐng)求表、SMS簽名短信上行請(qǐng)求表、SMS簽名響應(yīng)表。各請(qǐng)求表字段同表1,響應(yīng)表字段同表2,四個(gè)表中的記錄通過業(yè)務(wù)流水號(hào)字段唯一關(guān)聯(lián)。SMS簽名請(qǐng)求表記錄SMS簽名接口的HTTP請(qǐng)求數(shù)據(jù),SMS簽名短信下行請(qǐng)求表記錄SMS簽名接口內(nèi)部下發(fā)的MT請(qǐng)求數(shù)據(jù),SMS簽名短信上行請(qǐng)求表記錄MO回調(diào)接口的HTTP請(qǐng)求數(shù)據(jù),SMS簽名響應(yīng)表記錄MO回調(diào)接口內(nèi)部下發(fā)的SMS簽名回調(diào)請(qǐng)求數(shù)據(jù),即SMS簽名接口返回的異步響應(yīng)數(shù)據(jù)。SMS簽名請(qǐng)求表和SMS簽名短信上行請(qǐng)求表可由被壓測(cè)接口進(jìn)行數(shù)據(jù)插入,也可由請(qǐng)求發(fā)起方進(jìn)行數(shù)據(jù)插入。由請(qǐng)求發(fā)起方進(jìn)行數(shù)據(jù)插入,可將請(qǐng)求發(fā)起方與被壓測(cè)接口之間的網(wǎng)絡(luò)傳輸、Web服務(wù)等相關(guān)環(huán)境性能情況涵蓋在內(nèi),得出的性能評(píng)估結(jié)果也更全面,因此,本文采取由請(qǐng)求發(fā)起方進(jìn)行數(shù)據(jù)插入的方式。被壓測(cè)的SMS簽名接口和MO回調(diào)接口內(nèi)部分別增加特定處理邏輯,即SMS簽名接口中在下發(fā)MT消息前將即將下發(fā)的MT請(qǐng)求數(shù)據(jù)插入SMS簽名短信下行請(qǐng)求表,MO回調(diào)接口中在下發(fā)HTTP請(qǐng)求給請(qǐng)求方回調(diào)接口前將HTTP請(qǐng)求數(shù)據(jù)插入SMS簽名響應(yīng)表。按請(qǐng)求方回調(diào)接口規(guī)則開發(fā)模擬測(cè)試樁供MO回調(diào)接口調(diào)用。

        由于SMS簽名接口是二級(jí)異步調(diào)用接口,業(yè)務(wù)邏輯較復(fù)雜,因此,需要在前述性能測(cè)試方案基礎(chǔ)上做一定的延伸擴(kuò)展。在同一個(gè)測(cè)試計(jì)劃的同一個(gè)線程組內(nèi)創(chuàng)建兩個(gè)HTTP請(qǐng)求取樣器,分別對(duì)應(yīng)SMS簽名接口和MO回調(diào)接口。SMS簽名接口取樣器內(nèi)部的BeanShell前置處理器腳本中需增加將HTTP請(qǐng)求數(shù)據(jù)插入SMS簽名請(qǐng)求表。MO回調(diào)接口取樣器內(nèi)部的BeanShell前置處理器腳本中需增加將HTTP請(qǐng)求數(shù)據(jù)插入SMS簽名短信上行請(qǐng)求表。編寫Java腳本用軟實(shí)現(xiàn)方式模擬終端內(nèi)部處理邏輯生成簽名值并組裝成MO回調(diào)接口請(qǐng)求數(shù)據(jù),以Jar包的形式供JMeter調(diào)用?;贛O回調(diào)接口內(nèi)部有對(duì)MO消息與MT消息的數(shù)據(jù)關(guān)聯(lián)檢查,在MO回調(diào)接口前置處理器腳本中還需增加一層邏輯處理,即只有在SMS簽名短信下行請(qǐng)求表中查找到對(duì)應(yīng)的記錄后才下發(fā)MO回調(diào)請(qǐng)求。根據(jù)產(chǎn)品實(shí)際性能需求,配置200個(gè)并發(fā)用戶數(shù),循環(huán)100次,執(zhí)行JMeter壓測(cè)。

        采用性能測(cè)試方案中所述結(jié)果統(tǒng)計(jì)分析方法,對(duì)在壓測(cè)過程中插入MySQL數(shù)據(jù)庫(kù)四個(gè)表中的數(shù)據(jù)做擴(kuò)展性統(tǒng)計(jì)分析,評(píng)估SMS簽名接口和MO回調(diào)接口內(nèi)部完整業(yè)務(wù)邏輯性能情況。編寫自定義Java腳本,逐一提取SMS簽名請(qǐng)求表中記錄,在SMS簽名響應(yīng)表中進(jìn)行查找,檢查是否有對(duì)應(yīng)的響應(yīng)串并對(duì)響應(yīng)串?dāng)?shù)據(jù)正確性作判斷。對(duì)于能找到對(duì)應(yīng)響應(yīng)串且響應(yīng)串?dāng)?shù)據(jù)正確的記為請(qǐng)求成功,對(duì)于未找到或者找到但相應(yīng)數(shù)據(jù)不正確者記為請(qǐng)求失敗,記錄請(qǐng)求成功總數(shù)和失敗總數(shù)。對(duì)于請(qǐng)求成功的記錄,根據(jù)SMS簽名請(qǐng)求表和SMS簽名短信下行請(qǐng)求表中的業(yè)務(wù)處理時(shí)間字段數(shù)據(jù),按前述統(tǒng)計(jì)方式統(tǒng)計(jì)第一階段SMS簽名接口內(nèi)部完整業(yè)務(wù)邏輯處理平均耗時(shí),根據(jù)SMS簽名短信上行請(qǐng)求表和SMS簽名響應(yīng)表中的業(yè)務(wù)處理時(shí)間字段數(shù)據(jù),統(tǒng)計(jì)第二階段MO回調(diào)接口內(nèi)部完整業(yè)務(wù)邏輯處理平均耗時(shí),記錄第一階段耗時(shí)、第二階段耗時(shí)以及兩個(gè)階段的總耗時(shí),統(tǒng)計(jì)分析所有請(qǐng)求成功的記錄的平均響應(yīng)耗時(shí)、最大響應(yīng)耗時(shí)和最小響應(yīng)耗時(shí)。對(duì)于請(qǐng)求失敗的記錄,記錄相應(yīng)的業(yè)務(wù)流水號(hào),便于作后續(xù)的問題排查分析。以上統(tǒng)計(jì)所得數(shù)據(jù)全部記入文件備查。

        2.3 壓測(cè)結(jié)果分析

        壓測(cè)生成的JMeter聚合報(bào)告顯示:SMS簽名接口總請(qǐng)求數(shù)為20 000,內(nèi)部同步處理邏輯平均響應(yīng)耗時(shí)為297毫秒,最小響應(yīng)耗時(shí)為48毫秒,出錯(cuò)率為0.00%;MO回調(diào)接口總請(qǐng)求數(shù)為20 000,內(nèi)部同步處理邏輯平均響應(yīng)耗時(shí)為1 267毫秒,最小響應(yīng)耗時(shí)為90毫秒,出錯(cuò)率為0.00%。兩個(gè)接口內(nèi)部同步處理邏輯性能尚在可接受范圍內(nèi)。

        對(duì)JMeter壓測(cè)過程中插入數(shù)據(jù)庫(kù)表中的各請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù)作統(tǒng)計(jì)分析。JMeter發(fā)給SMS簽名接口的總請(qǐng)求數(shù)為20 000,發(fā)給MO回調(diào)接口的總請(qǐng)求數(shù)為20 000。異步收到結(jié)果的總記錄數(shù)為20 000,且所有記錄的響應(yīng)數(shù)據(jù)均正確。其中,能與請(qǐng)求相關(guān)聯(lián)的有19 896條記錄,無法關(guān)聯(lián)的有104條。能與請(qǐng)求相關(guān)聯(lián)的所有記錄中,最小響應(yīng)耗時(shí)50 394毫秒,最大響應(yīng)耗時(shí)56 522毫秒,平均響應(yīng)耗時(shí)51 270毫秒。

        對(duì)結(jié)果作進(jìn)一步分析,從發(fā)給MO回調(diào)接口的總請(qǐng)求數(shù)以及接口對(duì)應(yīng)的后臺(tái)日志可以確認(rèn),MO回調(diào)接口的20 000次請(qǐng)求中有104次未能成功返回異步結(jié)果,錯(cuò)誤率為0.52%。通過比對(duì)JMeter發(fā)出請(qǐng)求的時(shí)間與接口對(duì)應(yīng)后臺(tái)日志中顯示的收到HTTP請(qǐng)求的時(shí)間,發(fā)現(xiàn)服務(wù)端接口收到請(qǐng)求的時(shí)間比JMeter發(fā)出請(qǐng)求的時(shí)間滯后約25秒。統(tǒng)計(jì)分析生成的部分結(jié)果示例如圖5所示。

        圖5 統(tǒng)計(jì)分析生成的部分結(jié)果示例

        綜上,基于本文提出的性能測(cè)試方案,不僅使用JMeter完成了對(duì)SMS簽名異步接口和MO回調(diào)異步接口內(nèi)部的同步業(yè)務(wù)邏輯的性能評(píng)測(cè),還根據(jù)壓測(cè)過程中收集的數(shù)據(jù)及對(duì)數(shù)據(jù)的統(tǒng)計(jì)分析完成了對(duì)兩個(gè)異步接口內(nèi)完整業(yè)務(wù)邏輯的性能評(píng)測(cè),發(fā)現(xiàn)了僅僅使用JMeter壓測(cè)無法檢出的兩個(gè)性能問題。實(shí)踐證明,本文所描述的性能測(cè)試方案切實(shí)可行且有明顯實(shí)效。

        3 結(jié) 語(yǔ)

        本文結(jié)合異步接口內(nèi)部處理邏輯,從分層壓測(cè)和統(tǒng)計(jì)分析的角度出發(fā),整合JMeter性能測(cè)試計(jì)劃設(shè)計(jì)、MySQL數(shù)據(jù)庫(kù)表設(shè)計(jì)、模擬接口測(cè)試樁設(shè)計(jì)和自定義Java腳本設(shè)計(jì)等多方面的技術(shù),設(shè)計(jì)了一套能夠覆蓋HTTP異步接口內(nèi)部完整處理邏輯的性能測(cè)試方案。通過在真實(shí)產(chǎn)品中進(jìn)行性能壓測(cè)實(shí)踐,證明了該方案在HTTP異步接口性能評(píng)測(cè)方面的可行性與實(shí)效性?;诜謱訅簻y(cè)和統(tǒng)計(jì)分析的特性,該方案具有良好的可擴(kuò)展性,不僅適用于具有二級(jí)異步調(diào)用關(guān)系的接口性能評(píng)測(cè),也可以通過延伸擴(kuò)展應(yīng)用于具有多級(jí)異步調(diào)用關(guān)系的復(fù)雜接口性能評(píng)測(cè)。

        猜你喜歡
        調(diào)用邏輯數(shù)據(jù)庫(kù)
        刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
        法律方法(2022年2期)2022-10-20 06:44:24
        邏輯
        創(chuàng)新的邏輯
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        女人買買買的神邏輯
        37°女人(2017年11期)2017-11-14 20:27:40
        數(shù)據(jù)庫(kù)
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        欧美疯狂做受xxxxx高潮| 偷拍一区二区盗摄视频| 四虎国产成人永久精品免费| 国产老熟女伦老熟妇露脸| 亚洲 欧美 综合 在线 精品| 大肉大捧一进一出好爽视色大师| 国产 中文 制服丝袜 另类| 亚洲精品字幕| 免费a级毛片又大又粗又黑| 欧美性猛交xxxx三人| 国产av激情舒服刺激| 私人毛片免费高清影视院| 四虎精品成人免费观看| 久久国产精品av在线观看| av在线观看免费天堂| 国产在线精品一区二区在线看| 亚洲最新版无码AV| 亚洲国产天堂av成人在线播放| 人妻无码第一区二区三区| 国产亚洲精品aaaaaaa片 | 久久精品国产丝袜| 国产一级一厂片内射视频播放| 国产亚洲成人av一区| 在线观看免费人成视频色9| 车上震动a级作爱视频| 亚洲AV秘 无码一区二区久久| 麻婆视频在线免费观看| 爆乳熟妇一区二区三区霸乳| 国产日韩亚洲欧洲一区二区三区| 国产美女高潮流的白浆久久| 欧美高清视频手机在在线| 亚洲精品国产av成拍色拍| 久国产精品久久精品国产四虎 | 亚洲国产精品亚洲高清| 丰满少妇人妻久久精品| 亚洲日韩精品无码专区网站| 精品国产亚洲一区二区三区演员表 | 2021久久最新国产精品| 高清亚洲精品一区二区三区| 日本三级片在线观看| 又黄又爽又高潮免费毛片|