![利用jmeter對mysql數(shù)據(jù)庫進(jìn)行壓力測試_第1頁](http://file4.renrendoc.com/view/fe6909aabf53aac25c44b13fedc3dcc3/fe6909aabf53aac25c44b13fedc3dcc31.gif)
![利用jmeter對mysql數(shù)據(jù)庫進(jìn)行壓力測試_第2頁](http://file4.renrendoc.com/view/fe6909aabf53aac25c44b13fedc3dcc3/fe6909aabf53aac25c44b13fedc3dcc32.gif)
![利用jmeter對mysql數(shù)據(jù)庫進(jìn)行壓力測試_第3頁](http://file4.renrendoc.com/view/fe6909aabf53aac25c44b13fedc3dcc3/fe6909aabf53aac25c44b13fedc3dcc33.gif)
![利用jmeter對mysql數(shù)據(jù)庫進(jìn)行壓力測試_第4頁](http://file4.renrendoc.com/view/fe6909aabf53aac25c44b13fedc3dcc3/fe6909aabf53aac25c44b13fedc3dcc34.gif)
![利用jmeter對mysql數(shù)據(jù)庫進(jìn)行壓力測試_第5頁](http://file4.renrendoc.com/view/fe6909aabf53aac25c44b13fedc3dcc3/fe6909aabf53aac25c44b13fedc3dcc35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
利用jmeter對mysql數(shù)據(jù)庫進(jìn)行壓力測試前期準(zhǔn)備工作:Jmeter的安裝包可以在公司W(wǎng):\engineering\software\linux\jmeter下可以找到oJmeter的運(yùn)行需要java環(huán)境的支持的,要運(yùn)行jmeter首先要安裝JDKjava運(yùn)行環(huán)境,此安裝包可以在公司的W:\engineering\software\linux\java下找到。此外要使用jmeter對mysql進(jìn)行壓力測試還要安裝mysql的JDBC驅(qū)動,例如驅(qū)動包mysql-connector-java-5.1.14-bin放到j(luò)meter的解壓包下的lib文件夾下。這樣測試環(huán)境就部署好了,接下來進(jìn)行測試計(jì)劃的創(chuàng)建。創(chuàng)建測試計(jì)劃:1.添加用戶(1)添加線程組測試計(jì)劃9添加9線程組,如下圖所示。線程組◎錐續(xù)0倍止踐程0線程組◎錐續(xù)0倍止踐程0倍止測試銭程屬性Ramp-UpP&riod(inseconds^:1狷曲真埶□永遠(yuǎn)”□I周度器蜒程組 I:iff:在肌祥器錯(cuò)課啟要楓務(wù)的動作“線程數(shù)”表示的是JMeter會同時(shí)創(chuàng)建多少個(gè)線程來進(jìn)行壓力測試,對于一個(gè)網(wǎng)站而言,也就是模擬一次存在多少個(gè)用戶來訪問該網(wǎng)站;而"Ramp-UpPeriod(inseconds)”表示JMeter每個(gè)秒發(fā)動多少并發(fā);"循環(huán)次數(shù)”則是指配置好的并發(fā)情形發(fā)生多少次。
這里新增一個(gè)線程組,重命名為“JDBCUSER”,如下圖所示。⑵在"線程組”下創(chuàng)建一個(gè)"UserDefinedVariables”JDBCUSER9天加一>配置元器件9用戶自定義的變量即用戶自定義變量,重命名為“我們定義的動態(tài)語句部分”,這里我們使用它來生成動態(tài)SQL語句,讓用戶每次訪問數(shù)據(jù)庫的SQL語句都不一樣,這樣減少mysql數(shù)據(jù)庫對相同SQL語句的緩存對測試結(jié)果所帶來的影響??梢杂肅trl+F來打開函數(shù)代碼輔助工具生成我們所需的函數(shù)調(diào)用。
2)接下來是配置JDBC連接設(shè)置JDBCUSER9添加一>配置元器件9JDBCConnectionConfigurationJDBCConnectionConfiguration名稱二JDBCConneclionConfigurationVariableHamoBoundt&PoolVariableName:MYSQLCoran&ctionP&olConfigurationJDBCDriverclaasiUsername;Password:匚oneihelionValFdaliunbyPoolDatabaseConnactionConftgurationDatabaseURL:創(chuàng)建一個(gè)具體的JDBC請求JDBCUSER9添加9Sampler9JDBCRequest,如下圖所示。名稱KocakVariableMams:M/sqlJDBCRequestSQLQueryParametervalu&SL昭_Random(1,200,accourtde-0_.AC00UNT_ID■}Parametertypes:iniselectacccuntserO_.IDasID4&_0_,accountserO_.ACCQUNf^l□asACCOUNT2_45_0_名稱KocakVariableMams:M/sqlJDBCRequestSQLQueryParametervalu&SL昭_Random(1,200,accourtde-0_.AC00UNT_ID■}Parametertypes:iniselectacccuntserO_.IDasID4&_0_,accountserO_.ACCQUNf^l□asACCOUNT2_45_0_1acccuntserO_.NAMEsbNAME45_0accDuntserO_.DESCRIP710NasDESCRIPT4_45_0_,accountserO_TAGSasTAGS45_0._.accounts&r0_.WEB8FTEasWESSITE45_0_.acccuntserO_.EXPERIENCEasEXPERIENCE45._0_fromwrtmysql.account_serviceaccounts&r0_whereaccduntser0_.ACCQUNT_I□=?:Q:H&jyT^pe:Pr&par&dSelectStatementthePoolName:MySQL(sameasintheconfigurationelement)"QueryType"中選擇的是預(yù)編譯語句;SQL語句當(dāng)中,動態(tài)內(nèi)容的代碼行是"whereaccountserO_.ACCOUNT_ID二?〃,這里的〃?〃就是預(yù)編譯語句中的動態(tài)參數(shù),在屬性頁下面的"ParameterValues〃和"Parametertypes"來指定,由于預(yù)編譯語句在Java教程已有很多講解,這里不再贅述。(4)創(chuàng)建監(jiān)聽器JDBCUSER9添加9監(jiān)聽器9圖形結(jié)果(5)保存測試計(jì)劃文件9保存測試計(jì)劃案例http:///s/2009T0-28/10361112119.shtml【IT168技術(shù)文檔】作為一名開發(fā)人員,大多情況下都會認(rèn)真的做好功能測試,但是卻常常忽略了軟件開發(fā)之后的壓力測試,尤其是在面向大量用戶同時(shí)使用的Web應(yīng)用系統(tǒng)的開發(fā)過程,壓力測試往往是不夠充分的。近期我在一個(gè)求職招聘型的網(wǎng)站項(xiàng)目中就對壓力測試的重要性體會頗深。在項(xiàng)目中,我負(fù)責(zé)開發(fā)職位信息的搜索部分,但是由于缺乏壓力測試,倉促將搜素部分的功能提交到生產(chǎn)環(huán)境,結(jié)果當(dāng)并發(fā)量稍稍到達(dá)一定程度時(shí),數(shù)據(jù)庫系統(tǒng)便已經(jīng)不堪重負(fù)。無奈之下向網(wǎng)上資源查詢解決方法,其中一個(gè)就是對現(xiàn)有的應(yīng)用做足夠到位的壓力測試。壓力測試有著很豐富的內(nèi)容,而這里,我只針對應(yīng)用中所遇到的問題以及解決方法做一個(gè)簡單的描述,希望對以后遇到同樣問題的朋友能夠起到些許幫助作用。我自己做的例子使用的環(huán)境是:測試工具:JMeter2.3.1數(shù)據(jù)庫:Oracle10G其他環(huán)境:JDK1.6.0_05(也可以使用JDK1.4及以上版本)創(chuàng)建好的JMeter測試計(jì)劃樹形結(jié)構(gòu)圖如下:
亍払懊的的救幄鱷測軾訃珈I?;使劭庚北的藝L來融歌諾隼國力測試渺戳帕定文的動憲沿旬…粉血BC連協(xié)設(shè)賣彳*產(chǎn)品塔堂丈羌曬爭JDBCRequest卜才嚴(yán)晶名li燉JOBCRecfue^亍払懊的的救幄鱷測軾訃珈I?叵I甲衰胳來看響應(yīng)吐杲囹樹形斤式若結(jié)果囹曲理WorkB&rcth在剛打開JMeter的時(shí)候,默認(rèn)會存在兩個(gè)節(jié)點(diǎn),一個(gè)是“TestPlan",點(diǎn)擊這個(gè)節(jié)點(diǎn),在右邊的屬性頁面中,命名為“我們的數(shù)據(jù)庫測試計(jì)劃”在屬性頁的最下面,我們看到設(shè)置jar包所在路徑的選項(xiàng),默認(rèn)存在一個(gè)選項(xiàng)"E:\software\develop\testunit\jMeter\jakarta—jmeter—2.3.1\lib",這個(gè)是我的機(jī)器中JMeter的lib目錄,在這個(gè)例子中,Oracle的jdbc驅(qū)動也已經(jīng)拷貝到該目錄下。內(nèi)容導(dǎo)航新增一個(gè)“ThreadGroup”,重命名為“使用變化的SQL來做數(shù)據(jù)庫壓力測試"。其中,"NumberofThreads"表示的是JMeter會同時(shí)創(chuàng)建多少個(gè)線程來進(jìn)行壓力測試,對于一個(gè)網(wǎng)站而言,也就是模擬一次存在多少個(gè)用戶來訪問該網(wǎng)站;而"Ramp-UpPeriod(inseconds)"表示JMeter每個(gè)多少秒發(fā)動并發(fā);"LoopCount”則是指配置好的并發(fā)情形發(fā)生多少次。在“TheadGroup"下創(chuàng)建一個(gè)“UserDefinedVariables”,即用戶自定義變量,重命名為"我們定義的動態(tài)語句部分”,這里我們使用它來生成動態(tài)SQL語句,讓用戶每次訪問數(shù)據(jù)庫的SQL語句都不一樣,這樣減少Oracle數(shù)據(jù)庫對相同SQL語句的緩存對測試結(jié)果所帶來的影響。CornmemsName:|我們定乂的動態(tài)甬鋸丹UserDefinedVariablesuscfDermetivariablesCornmemsName:|我們定乂的動態(tài)甬鋸丹UserDefinedVariablesuscfDermetivariablesNamef[Valuestr \${_split(D610or3gie本Q61Dor”2。|"2。服務(wù)器.keywordj)}mzny.sqipnamelike*%D610%'orp^nametike%AJX抵[p^name!fkeF筆…smt澱一創(chuàng)i!%訕n7」織簡訛|)}變量定義的完整內(nèi)容如下:NameValue-strJLsplit(D610ofMt3^|D610orn620|D620|^器民河o「d」)}many_sqlp_namelike'^DGIO^orp_namelikeMX^'If>_namelike綏筆記本喝orp_namelikeTO610W|pnamelike^D610%J|pnamelike^IX%' -srrit辭split^rrianyBql},smt,|)}注:${__split(...)}是JMeter中自帶的拆分字符串為數(shù)組的函數(shù),可以通過JMeter工具欄"Options"->"FunctionHelperDialog"來打開函數(shù)代碼輔助工具生成我們所需的函數(shù)調(diào)用。另外有個(gè)需要注意的問題是:在${__split(...)}中,如果拆分字符串中的內(nèi)容包含有符號〃,〃,一定得用符號〃\〃進(jìn)行轉(zhuǎn)義,否則可能被JMeter誤認(rèn)為是參數(shù)分隔符,會導(dǎo)致無法正確生成字符串?dāng)?shù)組。內(nèi)容導(dǎo)航接下來是配置JDBC連接設(shè)置JDBCConnectionConfigurationName:|jDB^連接設(shè)蠱Comments:VariableNameBoundtoP?jo!VariableName:ConnectionP導(dǎo)也Configuration匚onnectionValidation昨PuulDatabaseConneciionConfigurationDatabaseURL:jcibd;oracle:triin:@i:27.O.O.1:1521'OracleJDBCDriverclass:oratle.jdbc.driyer.OracleDriverUsername:■testPassword:;■test創(chuàng)建一個(gè)具體的JDBC請求
JDBCRequest麻簡世p巳墻全冥關(guān)程字JDei5Rg4LJQSt iCcmmcntE:VaFi^leNanusGniuidtoPoolk/ariahlEMaEtic:SQLQtitjfyGuerylypo:tTofiarcd^sieclSlateineiit ▼Queryselect^FROm(se-lectp.p_id,pp_narmc,c.cm|:_naimsfromteGt_productp,tBst_coFnpan\cwh0<ep.tfnp_id-c.cmp」日anccorrtainsfp.p_name,*0and^i.p,-nairielike嗚D映pp.|).帖附總lik&鳴aix巴)ORDERB?p.pjditrYiUWHERE1=1ANDRDWNUW100)WHLRE1 1ANDm>=1 __MH = ParamctorvaEues:i$(_/(Kevwcrd_5!_Rar-dQm(1|1.rn(l}}])7/V)/W也idlWei(KnaS^yflpC-HAF 1—x:—f LL——"QueryType"中選擇的是預(yù)編譯語句;SQL語句當(dāng)中,動態(tài)內(nèi)容的代碼行是"andcontains(p.p_name,?)>0",這里的"?"就是預(yù)編譯語句中的動態(tài)參數(shù),在屬性頁下面的"ParameterValues"和"Parametertypes"來指定,由于預(yù)編譯語句在Java教程已有很多講解,這里不再贅述。注:這里有一個(gè)JMeter的函數(shù)〃_V...〃沒有提到,將在后面說明另外一個(gè)JDBC調(diào)用測試的時(shí)候進(jìn)行補(bǔ)充。內(nèi)容導(dǎo)航創(chuàng)建三個(gè)監(jiān)聽器,可以從三個(gè)不同的層面來觀察響應(yīng)結(jié)果0用我將來看響曲給果0用我將來看響曲給果曲線圖看響應(yīng)執(zhí)行一下測試計(jì)劃,我們來看看三個(gè)監(jiān)聽器所返回的結(jié)果是怎樣的。V?e=wRe-suttsinTableName;舟童將貳春響盡嶄杲 「 |CbnunenH!財(cái)巾電I色紳rt±iDni?;R?3Lirii]miii?Filcnomc Browse.~LoG/l3i3ialay-(MK:□Etfo「毛 SuccessesGonfigBrf : L *Sample#jThreadNameLstid羽請頁ME贋H孌他帕門味熾數(shù)據(jù)爭助砒…鬥翱全艾則坤血恥曲…
13CS Sample#jThreadNameLstid羽請頁ME贋H孌他帕門味熾數(shù)據(jù)爭助砒…鬥翱全艾則坤血恥曲…
13CS :凝冥優(yōu)啟家斥苗藪傭岸壓力族二證磊君堂文英融士」D肌R&..13C821^75使用荒優(yōu)的旳未啟;揺穿迂力訓(xùn)膩產(chǎn)謁車圭疫子聲左JDBCRt.■13伽:曲4闘價(jià)用時(shí)熾購味謝張洞犀岳力麗」亠鬥它交矣孵!J0歸二心:皿:曲戲丁便胃獎化的3味做數(shù)祐岸壓劃M試…廬金艾擁字血口丙匸疋邛前一普□伽閔堀誠親恤新栃庫壓力狽懺-13CS:?3.^15曲冃蒂化的尬71.親舷盤誦庫空力刑喊童文矢曲JDEIGRE二1D3220931SS91911■13:血也主朝俺用躬t的購供輙計(jì)據(jù)至:W方恥我二■[電WVTt^=JD0DRft...13:08:^-5^使用雯優(yōu)的甜碌做數(shù)檐匪匝力測試…廬品電全交英時(shí)JDPC時(shí)…’自;呷紹丹2血豹面旳味西就儲庫遷力理臟13^聘勺日閔用頁ft啟和L卡鯛盤堀不■三力列慚定憑矢龍亍JDEU氐,.?1
羊'jy/iajsj d齊倉49i-5065葛Isa165北J0-flS145以上是表格方式查看響應(yīng)結(jié)果的情況,可以看到通過表格可以查看某個(gè)范圍內(nèi)的響應(yīng)時(shí)間和響應(yīng)狀態(tài)是否正常;ViewR?sutfisTr?eNamw捕舷右式若結(jié)期CQimK-i^srWN@rRRiiinstnni?■匱的ti:fromtjirBrowse?, Lo^'DIspiayOnly二]E*「a^|'SuccessesCoi?ftBrowse?, Lo^'DIspiayOnly二]E*「a^|'SuccessesCoi?ft(|<4rcFlfcflameSarnulwh啊nil Ra申tuirl Rjaspunseit汛nResponsehearte-F:Df機(jī)吃JdbtdHVgirT4C顫朋i-Cti也ft@j29372tThrenidNaMB.ftffiS^KSQL^fiitES莊力逛fit--Ssmples-ari:200S-tl5-idi3j1B:20tSTL^adlime:3079Liters^'171Siz=Imttyt*毘3SarripkCsatiM:1timrCsuntDR笨昭卿汕左RyspOrii^nst^sdjt-.」衛(wèi)呂名空、:'工誼二一DECFi-qu-.JSCHkiu丄盧品宕蘭宏矢薛l!)^n」衛(wèi)呂名空、:'工誼二一DECFi-qu-.JSCHkiu丄盧品宕蘭宏矢薛l!)^nw站負(fù)黑洛2立戈畛JDBUFW丄嚴(yán)詁宅爭立芳譚車」DECRpqiij匸產(chǎn)品£2文壬薩于;ULK:hiPqLl吊缶三二.1於*:貳R;護(hù)丄產(chǎn)呂圮仝玄姜閔主」DBCRequ:Pifep^ecl5flMe:SlaLeII'l^ntjSELECT”FRdbl(5ELSCTbnp4.RdWNUhrnF口咖sol(;rtt.p」龜po_rKim?.c.cmp_nainQfiomlastproductr,Ijss^compan^gwhereptmp_id=c.cmp」mandi:ijht:3曲就乩或_関帕鼻刃>0-and<p.pnarn=Iike*%DB%Jo=p.priarnuItt?%AJX%,:iORDERBYp.pjddESC)WWHEREI-I^DRW'WUM-=100)WHERE1=rn士叮^eg^estHeaders:山興品帛主立羞禰斗.DBtFequSaniplefre^dtREEHiesttiesiiBns&ilata亠怎出鬼辛立吳因H-D3CRejuu丄產(chǎn)王名寶農(nóng)芳噪京丄EG局旳u亠&名工交矢遴至川?^咋qu」產(chǎn)岀名全文予謎耳nSCF?fiNU』4丘站全豈;戈港豐?omc冃0q??舍品電全立工覘卓.DBCFuqu令口片-iiTT-VRa-^廠1口CCnni1:PID FNAME CMPNAMERN3 HPv 伽g以上三幅截圖則是來自樹形監(jiān)聽器,樹形監(jiān)聽器在幾種監(jiān)聽器中應(yīng)該是最細(xì)致的,可以查看響應(yīng)狀態(tài)、時(shí)間、以及執(zhí)行的SQL語句,乃至返回的結(jié)果均能進(jìn)行驗(yàn)證。FilvndrriHCuniMiuiv丄產(chǎn)吊鬲ilcvdDECRequest一丄存啟名ikeJDBCRs;utsL產(chǎn)詁匚ikm」LHi;記FilvndrriHCuniMiuiv丄產(chǎn)吊鬲ilcvdDECRequest一丄存啟名ikeJDBCRs;utsL產(chǎn)詁匚ikm」LHi;記emmt丄?■品名iksjde-cRequest出言品京ikeJDBCRwJUtJsL士產(chǎn)制啟il?-JDBiRejue^t&戸品帛Ell#JOB亡壯questiK3JDBCR^QuGSt」主呂宅ihaJDBCRejuesL」產(chǎn)品呂IKS-JDE'1;Requestj嚴(yán)品*IksJDECPecrestPS5.ik.rJDBCRdquosl產(chǎn)西呂ik=JDBCR^zuest_-a i鹿」m弋卩的“parSamplerre^irit1."" Rs(|w&tResH^Dnse氐uwsHi LtHjDi?ii>4av4■駄 Cimi^Sutkubvstrif;f■■■■pareds:-lec:£itit-:rvcnr:wele匚t‘FROM(SELECT昨11*.R01YNUMinFF?CiM(selEEt;n_:,g_iwnacCrnp_nainefromlust_produdp, cx^herentiTi|i_irl=c.cmpizAh:Kp_namellkp勺l.i:iitJ'Ni';GF?DEFFYPi」QdESG;■HiPdHEf?E'-1AT-IDPWHjH"冏VJHfPE1=?AMDrn-=-FJUqut^lJ'-flE:至于上面的圖形監(jiān)聽器,可以宏觀的觀察SQL語句在壓力測試下響應(yīng)的平滑度,并且有一定的統(tǒng)計(jì)信息,能夠觀察平均響應(yīng)時(shí)間等?,F(xiàn)在我們來看另外一種方式編寫我們的JDBC調(diào)用。就是使用JMeter提供的函數(shù)動態(tài)生成我們所需要不斷變化的SQL語句部分。之所以需要這么做是為了方便我們觀察執(zhí)行的SQL語句內(nèi)容。在前面使用預(yù)編譯的方式,傳遞動態(tài)參數(shù)的SQL語句執(zhí)行的結(jié)果,大家已經(jīng)看到過,在樹形監(jiān)聽器中,我們觀察到到執(zhí)行過的SQL語句是:CodehighlightingproducedbyActiproCodeHighlighter(freeware)http://www.CodeH/SELECT*FROM(SELECTtmp.*,ROWNUMrnFROM(selectp.p_id,p.p_name,c.cmp_namefromtest_productp,test_companycwherep.cmp_id=c.cmp_idandcontains(p.p_name,?)>0--and(p.p_namelike'%D%'orp.p_namelike'%AIX%')ORDERBYp.p_iddesc)tmpWHERE1=1ANDROWNUM<=100)WHERE1=1ANDrn>=1這樣導(dǎo)致我們無法看出參數(shù)"?"當(dāng)中表示的具體值是什么,這對我們在某些情況下確定SQL語句的性能是相當(dāng)不利的。所以我們這里需要使用JMeter的動態(tài)函數(shù)特性。我們創(chuàng)建第二個(gè)〃JDBCRequest〃節(jié)點(diǎn),而后禁用〃產(chǎn)品名全文關(guān)鍵字JDBCRequest〃,將新創(chuàng)建的"JDBCRequest〃重命名為〃產(chǎn)品名likeJDBCRequest〃,將其中的SQL語句改寫為:Codehighlightingproducedby
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年強(qiáng)力霹靂燈管項(xiàng)目可行性研究報(bào)告
- 2025年塑料封口項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國中厚料機(jī)旋梭行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年依非巴特項(xiàng)目可行性研究報(bào)告
- 2025年3-甲基-2-硝基苯甲酸項(xiàng)目可行性研究報(bào)告
- 2025至2030年鋼鐵制品項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年葡萄糖大輸液項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年白象牙木板材項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年浪涌抗擾度測試儀項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年木制辦公椅項(xiàng)目投資價(jià)值分析報(bào)告
- 主題旅游產(chǎn)品和線路推廣實(shí)施方案
- 梁湘潤《子平基礎(chǔ)概要》簡體版
- 兒童常用藥物及安全用藥課件
- 冬季安全生產(chǎn)知識講座
- 2024年媒體與傳媒行業(yè)培訓(xùn)資料掌握新媒體技術(shù)和內(nèi)容創(chuàng)作的最佳實(shí)踐
- 護(hù)士團(tuán)隊(duì)的協(xié)作和領(lǐng)導(dǎo)力培養(yǎng)培訓(xùn)課件
- 安全生產(chǎn)法培訓(xùn)課件
- 導(dǎo)言中職專用《職業(yè)道德與法治》(高教版2023基礎(chǔ)模塊)
- 人教版《道德與法治》四年級下冊教材簡要分析課件
- 數(shù)字示波器的工作原理及其應(yīng)用
- 病史采集評分標(biāo)準(zhǔn)-純圖版
評論
0/150
提交評論