版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、陳曦性能測試的概念& &基本流程性能測試的類型LoadRunnerLoadRunner運(yùn)行機(jī)制LoadRunnerLoadRunner四大組件性能測試過程中需要關(guān)注的一些指標(biāo)性能測試的常見誤區(qū)性能測試關(guān)鍵過程LoadRunnerLoadRunner腳本結(jié)構(gòu)事務(wù)檢查點(diǎn)思考時間常用請求函數(shù)關(guān)聯(lián)參數(shù)化集合點(diǎn)調(diào)試技術(shù)Analysis性能計數(shù)器拐點(diǎn)分析性能調(diào)優(yōu)ControllerControllern 性能測試的基本流程什么是性能測試?性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。n 性能測試的基本流程性能測試的基本流程n 性能測試的關(guān)鍵
2、過程是將客戶、系統(tǒng)使用者的真正需求弄清楚。性能測試的關(guān)鍵過程是什么?客戶的要求 客戶真正的需求很多客戶對什么是性能測試并不了解,比如:1)對所有功能進(jìn)行性能測試2)系統(tǒng)登錄響應(yīng)時間應(yīng)小于3秒n 性能測試的關(guān)鍵過程答案:不可能原因:l 性能測試的周期較長,對所有功能都進(jìn)行性能測試需要耗費(fèi)時間太長l 很多功能是用戶不經(jīng)常使用的,做性能測試沒意義l 正確的做法:由客戶提出需求內(nèi)容,由性能測試人員進(jìn)行專業(yè)的分析后,提出相應(yīng)的性能測試計劃,與用戶共同商量確認(rèn)性能測試計劃。性能測試的內(nèi)容通常也是結(jié)合用戶真實的應(yīng)用場景,測試應(yīng)用場景最多,使用最頻繁的功能。對所有功能進(jìn)行性能測試系統(tǒng)登錄響應(yīng)時間應(yīng)小于3秒存在
3、問題:沒有指明存在多少用戶同時訪問時需要達(dá)到該性能指標(biāo)要求。n 確認(rèn)性能標(biāo)準(zhǔn)的方法確認(rèn)性能標(biāo)準(zhǔn)的常用方法有哪些?l 如果有老系統(tǒng),根據(jù)老系統(tǒng)中的數(shù)據(jù)進(jìn)行統(tǒng)計分析,確定性能指標(biāo)l 根據(jù)二八原則進(jìn)行計算n 性能測試的類型l負(fù)載測試l壓力測試l配置測試l并發(fā)測試l容量測試l可靠性測試l失敗測試l常規(guī)性能測試和非常規(guī)性能測試n 性能測試的類型負(fù)載測試和壓力測試負(fù)載測試:通過逐步增加系統(tǒng)負(fù)載,測試系統(tǒng)性能的變化,并最終確定在滿足系統(tǒng)的性能指標(biāo)的情況下,系統(tǒng)能夠承受的最大負(fù)載量的測試。簡而言之,負(fù)載測試時通過逐步加壓的方式確定系統(tǒng)的處理能力、確定系統(tǒng)能夠承受的各項閥值。例如,逐步加壓,從而得到 “在*的壓
4、力下,響應(yīng)時間不超過10秒”、“服務(wù)器平均CPU利用率低于85%”等指標(biāo)的閾值。壓力測試:通過逐步增加系統(tǒng)負(fù)載,測試系統(tǒng)性能的變化,并最終確定在什么負(fù)載條件 下系統(tǒng)性能處于失效狀態(tài),并來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。壓力測試是逐步增 加負(fù)載,使系統(tǒng)某些資源達(dá)到飽和甚至失效。n 性能測試的類型常規(guī)性能測試和非常規(guī)性能測試目前市面上常用的性能測試工具如LoadRunner,對常規(guī)協(xié)議如http、https、socket等協(xié)議支持較好。進(jìn)行性能測試時可以通過模擬多用戶線程,從請求發(fā)送出去開始,經(jīng)過網(wǎng)絡(luò)上行傳輸+服務(wù)端邏輯處理耗時+網(wǎng)絡(luò)下行傳輸,到客戶端收到最終的響應(yīng)報文結(jié)束(這一段時間,叫做響
5、應(yīng)時間),來分析系統(tǒng)的事務(wù)處理能力。另外,也可以把每次版本發(fā)布前定期需要做的性能測試任務(wù)也稱為常規(guī)性能測試。非常規(guī)性能測試與之相反,對一些非常規(guī)的協(xié)議,如dubbo、rmp等小眾協(xié)議或者公司內(nèi)部定義的一些協(xié)議,市面上常規(guī)的性能測試工具是完全不支持的。此類測試可稱為非常規(guī)性能測試。n 性能測試需要關(guān)注的指標(biāo)系統(tǒng)指標(biāo)l 并發(fā)用戶數(shù)l 在線用戶數(shù)l 平均響應(yīng)時間l 90%響應(yīng)時間:跟此概念類似的還有響應(yīng)時間中位數(shù)l 最大響應(yīng)時間l 事務(wù)成功率l 超時錯誤率l TPS(HPS)*硬件指標(biāo):后面詳細(xì)介紹n 性能測試需要關(guān)注的指標(biāo)標(biāo)準(zhǔn)差:標(biāo)準(zhǔn)差指的是采樣數(shù)據(jù)的差異程度,簡單來講獲得的數(shù)據(jù)越穩(wěn)定標(biāo)準(zhǔn)差就越小
6、標(biāo)準(zhǔn)差公式為 應(yīng)用場景:如系統(tǒng)每一輪發(fā)布之前都需要做常規(guī)性能測試,那么除了平均響應(yīng)時間、TPS這些指標(biāo)外,還需要關(guān)注標(biāo)準(zhǔn)差。l 兩輪之間如果標(biāo)準(zhǔn)差比較接近,那么系統(tǒng)穩(wěn)定、滿足性能要求l 如果標(biāo)準(zhǔn)差差別較大,即便其他性能指標(biāo)符合要求,數(shù)據(jù)穩(wěn)定性下降,這種情況也需要加以重視。n 性能測試常見的誤區(qū)什么是并行?什么又是并發(fā)?并發(fā)數(shù) OR TPS?n 性能測試常見的誤區(qū)并發(fā)數(shù) OR TPS?舉一個例子:單核CPU和多核CPU,其根本原理就是并發(fā)和并行單核CPU是多個任務(wù),通過時間片算法,切換著同時進(jìn)行,這稱為并發(fā)多核CPU可以做到真正意義上的同時進(jìn)行多個任務(wù),最大并行任務(wù)數(shù)量=CPU核數(shù)n 性能測試常
7、見的誤區(qū)并發(fā)數(shù) OR TPS?并發(fā)數(shù)就是衡量一個系統(tǒng)性能的標(biāo)準(zhǔn)?不夠嚴(yán)謹(jǐn),缺少一個嚴(yán)格的時間刻度TPS是指在一秒內(nèi)處理完成的事務(wù)數(shù),用TPS來衡量系統(tǒng)指標(biāo),相對于并發(fā)數(shù)來說,比較嚴(yán)謹(jǐn)。所以推薦用TPS衡量系統(tǒng)性能,而不是并發(fā)數(shù)。n 性能測試常見的誤區(qū)測試大并發(fā)場景是不是就完全沒有必要了呢?真實的現(xiàn)實場景中,大并發(fā)高TPS,真正的TPS和并發(fā)數(shù)的關(guān)系如下:最優(yōu)并發(fā)數(shù),就是系統(tǒng)的承載能力的體現(xiàn)n 性能測試常見的誤區(qū)引申問題:為什么在達(dá)到最優(yōu)并發(fā)數(shù)之后,TPS不是穩(wěn)定下來反而下降了呢?n 性能測試常見的誤區(qū)1虛擬用戶=1實際用戶?1000個虛擬用戶,每個虛擬用戶每10秒向服務(wù)器發(fā)送一個請求10個虛擬
8、用戶,每個虛擬用戶每秒向服務(wù)器發(fā)送10個請求哪種方案對服務(wù)器造成的壓力比較大?結(jié)論:單純的虛擬用戶數(shù)不能作為衡量服務(wù)器壓力的標(biāo)準(zhǔn),也就不能用來跟實際用戶數(shù)做衡量。如果某些情況下一定要用虛擬用戶數(shù)體現(xiàn)某些數(shù)據(jù),那么一定要加上請求頻率和時間。n 性能測試常見的誤區(qū)所有性能測試類型都要覆蓋到?答案是否定的,絕大部分的系統(tǒng),都是有側(cè)重點(diǎn)的,主要看系統(tǒng)使用者更關(guān)注哪一方面。比如說一些內(nèi)部網(wǎng)站,用戶量不是很大,很少會出現(xiàn)所有用戶同時訪問的情況。這種情況就不用過多的關(guān)注系統(tǒng)容量。并且,性能測試的周期通常比功能測試要長,如果沒有側(cè)重點(diǎn),單純地講大而全的話,很可能會影響到項目的發(fā)布周期。n LOADRUNNER
9、LOADRUNNER運(yùn)行機(jī)制是一款商業(yè)的性能測試工具優(yōu)點(diǎn):界面友好、方便易用、支持協(xié)議眾多、功能強(qiáng)大尤其圖表分析功能,強(qiáng)于所有其他性能測試工具缺點(diǎn):比較龐大、笨重。尤其腳本錄制功能比較弱。需要破解。對Java 和.net的版本支持比較低。從用戶關(guān)注的響應(yīng)時間、吞吐量,并發(fā)用戶和性能計數(shù)器等方面來衡量系統(tǒng)的性能表現(xiàn),輔助用戶進(jìn)行系統(tǒng)性能的優(yōu)化n LOADRUNNERLOADRUNNER運(yùn)行機(jī)制l 采用一臺或者幾臺計算機(jī)產(chǎn)生成千上萬的虛擬用戶,模擬用戶的實際行為l 虛擬用戶(Vuser)通過執(zhí)行典型業(yè)務(wù)流程模擬實際用戶的操作l 增加Vuser的數(shù)量可以增大系統(tǒng)上的負(fù)載l 并且通過實時監(jiān)控系統(tǒng)、服務(wù)
10、器的性能指標(biāo)的方式確認(rèn)和查找問題n LOADRUNNERLOADRUNNER四大組件VuGen-虛擬用戶腳本生成器(HP Virtual User Generator)l 錄制用戶在應(yīng)用程序上執(zhí)行的操作來生成測試腳本l 運(yùn)行、調(diào)試腳本,完善并豐富腳本,或自行編寫代碼,支持多種語言Controller-控制器l 設(shè)計并運(yùn)行場景,模擬真實用戶操作場景,讓多個Vuser同時操作,從而施加負(fù)載Analysis-結(jié)果分析器l 測試完成后,對測試過程中收集到的各種性能數(shù)據(jù)進(jìn)行計算、匯總和處理,生成各種圖表和報告l 為后續(xù)對系統(tǒng)的改進(jìn)、提高其性能提供依據(jù)n LOADRUNNERLOADRUNNER四大組件L
11、oad Generator-負(fù)載發(fā)生器*無界面,后臺進(jìn)程,LoadRunner執(zhí)行性能測試的核心l 由Controller喚起對應(yīng)的后臺進(jìn)程(mmdrv.exe)l Controller中設(shè)置的每一個虛擬用戶Vuser最終會被實例化成一個線程,Load Generator會根據(jù)Controller中設(shè)置的并發(fā)用戶數(shù),來啟動相應(yīng)的線程數(shù)量l 執(zhí)行測試腳本中的方法模擬用戶對服務(wù)器提交請求,模擬多用戶并發(fā)訪問被測試系統(tǒng)l 每增加50個虛擬用戶,會新增一個mmdrv.exe進(jìn)程n LOADRUNNERLOADRUNNER支持的協(xié)議l Web(http/html)l webservice(基于http協(xié)
12、議)l SOCKET(TCP/IP)l .NET vuser(.net framework 2.0)、Java vuser(jdk 1.5)n LRLR腳本結(jié)構(gòu)Vuser_Init腳本運(yùn)行期間只執(zhí)行一次Action腳本運(yùn)行期間執(zhí)行一至多次Vuser_End腳本運(yùn)行期間只執(zhí)行一次http和webservice協(xié)議 腳本結(jié)構(gòu)-可以存在多個actionn 集合點(diǎn)集合點(diǎn)可以同步虛擬用戶以便恰好在同一時刻執(zhí)行任務(wù)。也叫作同步點(diǎn)集合點(diǎn)是什么?集合點(diǎn)工作原理集合點(diǎn)插入到腳本中來指定匯合位置,在Vuser執(zhí)行腳本并遇到集合點(diǎn)時,腳本將暫停執(zhí)行,Vuser將等待Controller允許繼續(xù)執(zhí)行。Vuser被從集
13、合釋放后,將執(zhí)行腳本中的下一個任務(wù)例子:lr_rendezvous(集合點(diǎn)); do_transaction(); /* application dependent transaction */ n 集合點(diǎn)1當(dāng)百分之多少的用戶到達(dá)集合點(diǎn)時腳本繼續(xù)。2當(dāng)百分之多少的運(yùn)行用戶到達(dá)集合點(diǎn)時腳本繼續(xù)。3多少個用戶到達(dá)集合點(diǎn)時腳本繼續(xù)。集合點(diǎn)設(shè)置策略集合點(diǎn)超時集合點(diǎn)和事務(wù)集合點(diǎn)應(yīng)該放在事務(wù)外,如果事務(wù)內(nèi)存在集合點(diǎn),那么虛擬用戶在集合點(diǎn)等待的過程也會被算入事務(wù)時間,導(dǎo)致早進(jìn)入集合點(diǎn)的用戶的響應(yīng)時間有誤n 事務(wù)一個事務(wù)應(yīng)該具有原子性、一致性、隔離性和持久性事務(wù)的特點(diǎn)在LoadRunner里,我們定義事務(wù)主要
14、是為了度量服務(wù)器的性能。每個事務(wù)度量服務(wù)器響應(yīng)制定的Vuser請求響應(yīng)時間,這些請求可以是簡單任務(wù),也可以是復(fù)雜任務(wù)。一個完整的事務(wù)是由事務(wù)開始、事務(wù)結(jié)束以及一個或多個業(yè)務(wù)操作/任務(wù)構(gòu)成。n 事務(wù)關(guān)于事務(wù)的一些說明1)事務(wù)必須是成對出現(xiàn),即:一個事務(wù)有事務(wù)開始,必然要求也有事務(wù)結(jié)束。2)事務(wù)結(jié)束函數(shù)共包括兩個參數(shù),第一個參數(shù)是事務(wù)的名稱,第二個參數(shù)是事務(wù)的狀態(tài)。事務(wù)的狀態(tài)可以為LR_PASS:返回“Succeed”代碼:LR_FAIL:返回:“Fail”代碼LR_STOP:返回“Stop”代碼:LR_AUTO:自動返回檢測到的狀態(tài)。3)事務(wù)中間,如果放入思考時間(lr_think_time函數(shù)
15、)放在否在在回放思考時間設(shè)置被允許的情況下,思考時間將被算入事務(wù)的執(zhí)行時間,從而影響事務(wù)正確的執(zhí)行時間的分析與統(tǒng)計。建議不加思考時間,或者忽略思考時間n 檢查點(diǎn)檢查點(diǎn)的原理檢查點(diǎn)就是自定義的判斷事務(wù)成功、失敗的方法常用方法:web_findweb_findweb_reg_findweb_reg_findweb_image_checkweb_image_check等等web_reg_findweb_reg_find與web_find:web_find:的區(qū)別:n 檢查點(diǎn)l 必須滿足是驗證事務(wù)通過與否的充分必要條件。檢查點(diǎn)通過,就能確定事務(wù)對應(yīng)的操作/任務(wù)是一個正常狀態(tài)。l 檢查點(diǎn)可以是常量,也可
16、以是變量。l 檢查點(diǎn)可以是文本、圖像文件,也可以是數(shù)據(jù)庫記錄等。檢查點(diǎn)設(shè)置說明n 思考時間用戶在執(zhí)行兩個連續(xù)操作期間等待的時間稱為“思考時間”。錄制Vuser腳本時,記錄相應(yīng)的思考時間并將相應(yīng)的lr_think_time語句插入到腳本中。Lr_think_time的參數(shù)單位是秒,比如lr_think_time(5)意味著LoadRunner執(zhí)行到此條語句時,停留5秒,然后再繼續(xù)執(zhí)行后面的語句。忽略思考時間的方法另外一種用法:Runtime Setting 中的Pacing ,用在迭代與迭代之間n 常用請求函數(shù)web_url用于get請求web_custom_request用于get和post請
17、求,功能強(qiáng)大,可控性高web_submit_data用于post請求,功能強(qiáng)大,可控性高web_submit_form用于post請求,功能較弱,不推薦使用web_service_call用于webservice協(xié)議發(fā)請求n 關(guān)聯(lián)所謂的關(guān)聯(lián)就是把腳本中某些寫死的數(shù)據(jù)轉(zhuǎn)變成動態(tài)的數(shù)據(jù)例如:SCADA V5.0中告警模塊從數(shù)據(jù)庫內(nèi)查詢到,做成參數(shù)化文件(關(guān)于參數(shù)化,后面進(jìn)行講解)通過WEB服務(wù)動態(tài)獲取GUID,然后返回給服務(wù)端。我們把這種動態(tài)獲取數(shù)據(jù)的方式稱謂關(guān)聯(lián),簡單地說,每一次執(zhí)行時都會有變動的值,就有可能需要做關(guān)聯(lián)。n 關(guān)聯(lián)自動關(guān)聯(lián)手動關(guān)聯(lián)自動關(guān)聯(lián)n 關(guān)聯(lián)利用web_reg_save_par
18、am函數(shù)手動關(guān)聯(lián)關(guān)聯(lián)的用途和意義1)簡化和優(yōu)化腳本代碼2)動態(tài)產(chǎn)生數(shù)據(jù)3)支持唯一數(shù)據(jù)n 參數(shù)化LoadRunner的參數(shù)化功能是數(shù)據(jù)驅(qū)動測試思想的一個重要的實現(xiàn)。所謂數(shù)據(jù)驅(qū)動測試,就是把測試腳本和測試數(shù)據(jù)分離開來的一種思想,腳本體現(xiàn)測試流程,數(shù)據(jù)體現(xiàn)測試案例。數(shù)據(jù)不是寫死在腳本里面,這樣大大提高了腳本的可復(fù)用性。n 參數(shù)化適用場景n 參數(shù)化參數(shù)化方法n 參數(shù)化n 參數(shù)化數(shù)據(jù)分配方法分配方法描述Sequential(順序)“順序”方法順序的向Vuser分配數(shù)據(jù)。當(dāng)正在運(yùn)行的Vuser訪問數(shù)據(jù)表時,它將會提取下一個可用的數(shù)據(jù)行。如果再數(shù)據(jù)表中沒有足夠的值,則VuGen返回列表中的第一個值,循環(huán)繼
19、續(xù)直到測試結(jié)束Random(隨機(jī)) “隨機(jī)”方法為每個Vuser分配一個數(shù)據(jù)表中的隨機(jī)值。當(dāng)運(yùn)行一個場景、會話步驟或業(yè)務(wù)流程監(jiān)控器配置文件時,可以指定隨機(jī)順序的種子數(shù)。每個種子值代表用于測試執(zhí)行的一個隨機(jī)值順序。每當(dāng)使用該種子值時,會將現(xiàn)共順序的值分配給場景或會話步驟中的Vuser。如果在測試執(zhí)行中發(fā)現(xiàn)問題,并且要使用相同的隨機(jī)值順序重復(fù)該測試,請啟用該選項 Unique(唯一) “唯一”方法為每個Vuser的參數(shù)分配一個唯一順序值。在這種情況下,必須確保表中的數(shù)據(jù)對所有的Vuser和他們的迭代來說是充足的。如果有20個Vuser,并且要運(yùn)行5次迭代,則參數(shù)化列表中必須有100個唯一值n 參數(shù)
20、化數(shù)據(jù)更新方式更新方式描述Each occurrence(每次出現(xiàn))“每次出現(xiàn)”方法指示Vuser在每次參數(shù)出現(xiàn)時使用新值。當(dāng)使用同一個參數(shù)的幾個語句不相關(guān)時,該方法非常有用。例如,對于隨機(jī)數(shù)據(jù),在該參數(shù)每次出現(xiàn)時都使用新值可能是非常有用的Each iteration(每次迭代)“每次迭代”方法指示Vuser在每次腳本迭代時使用新值。如果一個參數(shù)在腳本中出現(xiàn)了若干次,則Vuser為整個迭代中該參數(shù)的所有出現(xiàn)使用同一個值。當(dāng)使用同一個參數(shù)的幾個語句相關(guān)時,該方法非常有用Once(一次) “一次”方法指示Vuser在場景或會話步驟運(yùn)行期間僅對參數(shù)值更新一次。Vuser為該參數(shù)的所有出現(xiàn)和所有迭代使
21、用同一個參數(shù)值。當(dāng)使用日期和時間時,該類型可能會非常有用n 參數(shù)化更新方法數(shù)據(jù)分配方法Sequential(順序)Random(隨機(jī))Unique(唯一)Each iteration(每次迭代)對于每次迭代,Vuser會從數(shù)據(jù)表中提取下一個值對于每次迭代,Vuser會從數(shù)據(jù)表中提取新的隨機(jī)值對于每次迭代,Vuser會從數(shù)據(jù)表中提取下一個唯一值Each occurrence(每次出現(xiàn))參數(shù)每次出現(xiàn)時,Vuser將從數(shù)據(jù)表中提取下一個值,即使在同一個迭代中參數(shù)每次出現(xiàn)時,Vuser將從數(shù)據(jù)表中提取新的隨機(jī)值,即使在同一個迭代中參數(shù)每次出現(xiàn)時,Vuser將從數(shù)據(jù)表中提取新的唯一值,及時在同一個迭代中Once(一次)對于每一個Vuser,第一次迭代中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)聯(lián)建合作協(xié)議書附智能安防系統(tǒng)安裝合同3篇
- 二零二五年度教育機(jī)構(gòu)校徽設(shè)計及校慶活動策劃合同3篇
- 2025健康服務(wù)站加盟合同
- 二零二五年度房地產(chǎn)經(jīng)紀(jì)公司新媒體運(yùn)營合同2篇
- 二零二五年度地下室小平方房屋租賃合同(含解除合同條款)2篇
- 2025年度大型企業(yè)集團(tuán)采購合同2篇
- 二零二五年度建設(shè)工程造價糾紛仲裁合同3篇
- 感恩鑄夢青春助力前行路
- 感恩照亮人生青春助力夢想
- 【物理課件】比熱容課件
- 項目工程安全管理責(zé)任區(qū)域劃分表
- 教育培訓(xùn)學(xué)校(機(jī)構(gòu))課堂教學(xué)反饋表
- 成功公司年度績效考核方案
- GB/T 17684-2008貴金屬及其合金術(shù)語
- 安全管理流程圖加強(qiáng)完善版
- 第一講-研發(fā)創(chuàng)新型企業(yè)需要IPD(下)徐驥課程-
- 2022年08月北京外交學(xué)院非事業(yè)編科研助理招聘14人高頻考點(diǎn)卷叁(3套)答案詳解篇
- 甲狀腺結(jié)節(jié)的超聲規(guī)范化診斷教學(xué)課件
- 職業(yè)健康監(jiān)護(hù)技術(shù)規(guī)范
- 安徽省白酒生產(chǎn)企業(yè)名錄395家
- 多媒體技術(shù)與應(yīng)用ppt課件(完整版)
評論
0/150
提交評論