




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1,ATF腳本開發(fā)培訓(xùn),Huawei-3com 測試平臺開發(fā)部,2,ATF腳本開發(fā)培訓(xùn),基本概念 腳本運行環(huán)境 ATF腳本開發(fā),3,基本概念,ATF是自動測試框架(Automation Test FrameWork)的縮寫。該框架提供了豐富的腳本運行和管理接口。 ATF腳本是基于ATF開發(fā)的自動化測試腳本。其最大的特點是腳本開發(fā)環(huán)境獨立于運行環(huán)境,具有良好的可移植性。,4,基本概念,功能層,驅(qū)動層,測試用例,測試日志,測試報告,VTP擴展,測試儀庫,其它庫,自動測試框架,測試邏輯層,5,ATF腳本開發(fā)培訓(xùn),基本概念 腳本運行環(huán)境 ATF腳本開發(fā),6,腳本運行環(huán)境,7,腳本運行環(huán)境,腳本編輯,結(jié)
2、果輸出,文件列表,8,ATF腳本開發(fā)培訓(xùn),基本概念 腳本運行環(huán)境 ATF腳本開發(fā),9,ATF腳本開發(fā),ATF腳本框架 測試床 邏輯拓撲 測試用例 運行腳本,10,ATF腳本框架,測試床:描述實際的物理環(huán)境 邏輯拓撲:描述測試例需要的組網(wǎng)環(huán)境 測試腳本:實現(xiàn)設(shè)備配置和檢查,11,測試腳本,邏輯拓撲,測試床,DUT1,DUT2,P1,P2,E0/0,S1/0,E0/0,E0/1,E0/1,S1/0,DUT1 Config “display current-configuration” DUT2 Config “display current-configuration” DUT1 Config “
3、interface $intf(DUT1,P1)” DUT2 Config “interface $intf(DUT2,P1)” 腳本中的描述都針對邏輯設(shè)備DUT1,DUT2,RT2,RT3,RT1,拓撲映射,使用,12,ATF腳本開發(fā),ATF腳本框架 測試床 邏輯拓撲 測試用例 運行腳本,13,測試床的基本格式,測試床在擴展名為*.tbd的測試床文件中描述包括設(shè)備描述和連接描述,LSW1 type = S3000 interface = Ethernet0/1,Ethernet0/2,Ethernet0/3 map-priority = 3 access-name = 3026-1 acce
4、ss-line = console access-channel = com1 initial-config = 032 system sysname 3026-1 LiNK ;Link Description link1, LSW1 Ethernet0/1, LSW2 Ethernet0/4,設(shè)備名稱,設(shè)備類型,物理端口,訪問名稱,訪問方式,訪問通道,初始配置,連接描述,設(shè)備描述,連接描述,映射優(yōu)先級,14,測試床描述說明:設(shè)備名稱,設(shè)備名稱:字符串表示的設(shè)備名稱,可以任意取名字,但不同設(shè)備之間不能重復(fù),最好只使用字母和數(shù)字,建議: 設(shè)備名稱和access-name保持一致,也就是和VTP窗
5、口名稱保持一致,這樣可以更方便腳本調(diào)試,15,測試床描述說明:設(shè)備名稱,設(shè)備類型:指定設(shè)備的類型,最好是詳細的類型信息,如S3026,不能為LanSwitch等其他的設(shè)備類型還有PC,Smartbits,RouterTester 目前支持的設(shè)備類型:,16,測試床描述說明:物理端口,物理端口:實際參與組網(wǎng)的端口名稱,要求引號內(nèi)以逗號分隔,中間不能有空格出現(xiàn).(e0/1, e0/2會出現(xiàn)錯誤).,說明: 物理端口和連接描述所用到的端口可以不一致,ATF沒有進行強制檢查,但會給出提示信息,17,測試床描述說明:映射優(yōu)先級,映射優(yōu)先級: 拓撲映射時,選擇該物理設(shè)備做為DUT的優(yōu)先級,取值范圍為0-3
6、,默認值為0,說明: 該優(yōu)先級和邏輯拓撲映射有關(guān),如果邏輯拓撲描述中存在DUT1,DUT2或SUT1,SUT2這樣的設(shè)備,則在滿足拓撲條件的情況下,按照物理設(shè)備的優(yōu)先級,優(yōu)先級高的物理設(shè)備優(yōu)先被映射到DUT1上;如果多個設(shè)備指定的優(yōu)先級相同,則按設(shè)備名稱的字典序排列,18,測試床描述說明:訪問名稱,訪問名稱: 對于測試設(shè)備,指在VTP中連接當前設(shè)備所使用的窗口名稱;對于Smartbits可以設(shè)置成字符串smb;對于RouterTester,為RouterTestere控制連接的lablename 訪問方式: 在VTP中連接當前設(shè)備采用的方式;如果是串口連接,用console表示;如果是Teln
7、et方式連接,用telnet表示;,19,測試床描述說明:訪問通道,訪問通道:運行腳本的計算機與所描述設(shè)備之間建立連接的通道,說明: 對于被測設(shè)備,是VTP中連接設(shè)備的通道,可能為: 串口連接:串口名稱 Telnet連接:IP地址/掩碼長度 或 IP地址:端口號 對于Smartbits:IP地址 對于RouterTester:LocalHost或Server端的IP地址,20,測試床描述說明:初始配置,初始配置:對設(shè)備進行初始化配置,在執(zhí)行腳本之前會執(zhí)行這里設(shè)置的命令,說明: 初始配置的目的是保證自動化環(huán)境在執(zhí)行腳本之前設(shè)備之間可以互通由于ATF會根據(jù)連接描述來自動配置端口的IP地址,因此這里
8、只需要保證其他條件即可,比如在Serial口上配置link-protocol 某些模塊為了保證腳本執(zhí)行也需要進行一些特殊配置,比如交換機上的Tunnel模塊需要配置link-aggregation,而這樣的配置在腳本中難以實現(xiàn),也會通過測試床來配置,具體情況要仔細閱讀這些模塊的說明文件 初始配置只在測試集初始化設(shè)備時執(zhí)行一次,單個腳本執(zhí)行時不執(zhí)行初始配置.,21,測試床描述說明:連接描述(I),連接描述:可以是多行,每一行的形式為如下,其中連接名稱可以省略 連接名稱 設(shè)備1名稱端口名稱 IPv4地址 IPv6地址,設(shè)備2名稱 端口名稱 IPv4地址 IPv6地址 設(shè)備名稱必須是前面設(shè)備描述已經(jīng)
9、存在的設(shè)備; IP地址的形式為:地址掩碼長度; ATF會根據(jù)連接描述自動配置端口的IP地址;,22,測試床描述說明:連接描述(II),端口名稱:與實際的設(shè)備端口相對應(yīng),可以為物理接口或VLAN虛接口描述形式為: 物理接口VLAN虛接口板卡類型,例如: link1, L3SW1 e1/0/1vlan10 1.1.1.1/16, L2SW1 e1/0 link2, L3SW2 vlan10 2.2.2.2/16, L3SW3 vlan20 2.2.2.3/16 link3, RTA s2/0/1:5#T1 2003:1/64, RTB s1/0/1 2003:2/64 link4, RTC e1/
10、0 20.1.1.1/16 2004:1/64, RTD e2/0 20.1.1.2/16 2004:2/64,23,測試床描述說明:注釋,注釋:在前面加分號可以注釋掉測試床中一行 不使用或只使用某臺設(shè)備:在設(shè)備名稱前面加!表示不使用該設(shè)備,加*表示只使用這些設(shè)備,24,測試床描述說明示例,路由器環(huán)境測試床: 交換機環(huán)境測試床:,25,ATF腳本開發(fā),ATF腳本框架 測試床 邏輯拓撲 測試用例 運行腳本,26,ATF腳本框架邏輯拓撲,27,拓撲名稱和拓撲圖,拓撲名稱:字符串表示的名稱,可以是任意字符串,最好只使用字母,數(shù)字和下劃線 拓撲圖:以字符畫出的拓撲結(jié)果,用雙引號括起來,注意: 拓撲名稱
11、和拓撲圖不是邏輯拓撲描述所必須的,可以為空字符串,但一般要求具備這兩項內(nèi)容,28,邏輯拓撲描述,具體描述邏輯設(shè)備的類型和設(shè)備之間的連接: 每一行描述一個連接或設(shè)備 設(shè)備描述格式為:邏輯設(shè)備名稱 設(shè)備類型 連接描述格式為:連接名稱, 連接設(shè)備1信息, 連接設(shè)備2信息 連接設(shè)備信息描述格式為:邏輯設(shè)備名 端口名 接口地址 接口地址的描述為:IP地址/掩碼長度,29,邏輯拓撲描述示例,配置測試拓撲描述: 三層模塊功能測試: 交換機二層模塊測試: 使用Smartbits:,30,ATF腳本開發(fā),ATF腳本框架 測試床 邏輯拓撲 測試用例 運行腳本,31,測試用例, “Step 1” configura
12、tion check ,頭部,拓撲映射,用例體, “Step 1” configuration check ,32,ATF測試腳本,用例信息 拓撲映射 配置檢查,33,ATF測試腳本用例信息, stp root-protection下發(fā)后顯示正確 1.2.2.2.2.12 2 RSTP CONFIGURATION 楊小軍 2003-12-29 無 1.1.1 在交換機上可以設(shè)置此命令 RSTP(IEEE-802.1W)_1.2.2.2_1.topo ,說明:這里使用引用邏輯拓撲文件,34,ATF測試腳本拓撲映射,自動邏輯拓撲映射: 手工邏輯拓撲映射:手工指定邏輯設(shè)備端口與物理設(shè)備端口之間的對應(yīng)
13、關(guān)系 設(shè)置拓撲映射約束:限制設(shè)備類型,端口類型等,35,邏輯拓撲映射得到的內(nèi)容,設(shè)備對象:與邏輯設(shè)備名稱同名(DUT1,SMB) 接口對象:主要是針對測試儀器的接口 相關(guān)變量:保存邏輯設(shè)備端口名稱與物理端口信息之間的映射關(guān)系,注意:在腳本中直接使用設(shè)備對象和設(shè)備相關(guān)變量進行配置和檢查,36,設(shè)備相關(guān)變量(I),物理接口名稱: intf (邏輯設(shè)備名稱,邏輯接口名稱) 接口IP地址: addr (邏輯設(shè)備名稱,邏輯接口名稱) 接口網(wǎng)段地址: net (邏輯設(shè)備名稱,邏輯接口名稱) 接口網(wǎng)絡(luò)掩碼: mask(邏輯設(shè)備名稱,邏輯接口名稱) 接口網(wǎng)絡(luò)掩碼長度:masklen(邏輯設(shè)備名稱,邏輯接口名稱
14、) 接口網(wǎng)絡(luò)反掩碼: wildcard(邏輯設(shè)備名稱,邏輯接口名稱) 接口路由: rtEntry(邏輯設(shè)備名稱,邏輯接口名稱) 接口有類路由: class_rtEntry(邏輯設(shè)備名稱,邏輯接口名稱),注意: 這里的設(shè)備相關(guān)變量實際上是以TCL的數(shù)組形式存放,對其取值的方式是在前面加$比如:$intf(DUT1,PORT1)就取得邏輯設(shè)備DUT1的PORT1端口對應(yīng)的物理端口名稱,37,設(shè)備相關(guān)變量(II),L2/L3相關(guān)變量: l2intf (邏輯設(shè)備名稱,邏輯接口名稱) l3intf (邏輯設(shè)備名稱,邏輯接口名稱),注意: 這兩個變量在任何情況下都有效,但取值會有變化對于路由器設(shè)備,二者完
15、全相同對于交換機設(shè)備,如果測試床描述為ethvlan的形式,則l2intf取值為Ethernet接口,l3intf取值為vlan虛接口;如果測試床描述只包含eth接口,則l3intf值為空;反之,如果測試床描述只有vlan接口,則l2intf值為空在不同情況下,intf變量的取值和腳本運行時參數(shù)有關(guān),而l2intf和l3intf只和測試床描述有關(guān),和運行時參數(shù)設(shè)置無關(guān),38,設(shè)備相關(guān)變量(III),IPv6相關(guān)變量: 接口IPv6地址: addr6 (邏輯設(shè)備名稱,邏輯接口名稱) 接口網(wǎng)絡(luò)前綴: net6 (邏輯設(shè)備名稱,邏輯接口名稱) 接口網(wǎng)絡(luò)掩碼: mask6(邏輯設(shè)備名稱,邏輯接口名稱)
16、 接口網(wǎng)絡(luò)掩碼長度:masklen6(邏輯設(shè)備名稱,邏輯接口名稱) 接口網(wǎng)絡(luò)反掩碼: wildcard6(邏輯設(shè)備名稱,邏輯接口名稱) 接口路由: rtEntry6(邏輯設(shè)備名稱,邏輯接口名稱) 接口有類路由: class_rtEntry6(邏輯設(shè)備名稱,邏輯接口名稱),注意: 這里的class_rtEntry6沒有實際意義,只是為了在處理時和IPv4保持一致masklen6和wildcard6一般也不會用到,但可以方便計算.,39,設(shè)備相關(guān)變量(IV),10.1.1.1/16,2000:1/64,10.1.1.2/16,2000:2/64,RT1,RT2,測試床描述: Link1, RT1
17、e1/0 10.1.1.1/16 2000:1/64, RT2 e1/0 10.1.1.2/16 2000:1/64,邏輯拓撲描述: Link1, RTA PORT1, RTA PORT2,RTA,RTB,映射結(jié)果: RTART1 PORT1e1/0 RTB RT2 PORT2 e1/0,40,設(shè)備相關(guān)變量(V),$intf(RTA,PORT1) -e1/0 $l2intf(RTA,PORT1) -e1/0 $l3intf(RTA,PORT1) -e1/0 $addr(RTA,PORT1)-10.1.1.1 $net(RTA,PORT1)-10.1.0.0 $mask(RTA,PORT1)-2
18、55.255.0.0 $masklen(RTA,PORT1)-16 $wildcard(RTA,PORT1)-0.0.255.255 $rtEntry(RTA,PORT1)-10.1.0.0/16 $classEntry(RTA,PORT1)-10.0.0.0/8 $addr6(RTA,PORT1)-2000:1 $net6(RTA,PORT1)-2000: $masklen6(RTA,PORT1)-64 $rtEntry6(RTA,PORT1)-2000:/64,41,設(shè)備相關(guān)變量(VI),10.1.1.1/16,10.1.1.2/16,LSW1,LSW2,測試床描述: Link1, LSW
19、1 e1/0/1vlan10 10.1.1.1/16, RT2 e2/0/1vlan20 10.1.1.2/16,邏輯拓撲描述: Link1, DUT1 PORT1, DUT2 PORT2,DUT1,DUT2,Level2映射結(jié)果: DUT1LSW1 PORT1e1/0/1 DUT2 LSW2 PORT2 e2/0/1,42,設(shè)備相關(guān)變量(VII),$intf(DUT1,PORT1) -Ethernet1/0/1 $l2intf(DUT1,PORT1) -Ethernet1/0/1 $l3intf(DUT1,PORT1) -Vlan-Interface10 $addr(DUT1,PORT1)-
20、10.1.1.1 $net(DUT1,PORT1)-10.1.0.0 $mask(DUT1,PORT1)-255.255.0.0 $masklen(DUT1,PORT1)-16 $wildcard(DUT1,PORT1)-0.0.255.255 $rtEntry(DUT1,PORT1)-10.1.0.0/16 $classEntry(DUT1,PORT1)-10.0.0.0/8,43,設(shè)備相關(guān)變量(VI),10.1.1.1/16,10.1.1.2/16,LSW1,LSW2,測試床描述: Link1, LSW1 e1/0/1vlan10 10.1.1.1/16, RT2 e2/0/1vlan20
21、 10.1.1.2/16,邏輯拓撲描述: Link1, DUT1 PORT1, DUT2 PORT2,DUT1,DUT2,Level3映射結(jié)果: DUT1LSW1 PORT1Vlan-Interface10 DUT2 LSW2 PORT2 Vlan-Interface20,44,設(shè)備相關(guān)變量(VII),$intf(DUT1,PORT1) - Vlan-Interface10 $l2intf(DUT1,PORT1) -Ethernet1/0/1 $l3intf(DUT1,PORT1) -Vlan-Interface10 $addr(DUT1,PORT1)-10.1.1.1 $net(DUT1,P
22、ORT1)-10.1.0.0 $mask(DUT1,PORT1)-255.255.0.0 $masklen(DUT1,PORT1)-16 $wildcard(DUT1,PORT1)-0.0.255.255 $rtEntry(DUT1,PORT1)-10.1.0.0/16 $classEntry(DUT1,PORT1)-10.0.0.0/8,45,VRP設(shè)備對象的常用方法,設(shè)備對象的使用: 調(diào)用方式:對象名稱方法名稱方法參數(shù) 常用方法:,46,ATF測試腳本,用例信息 拓撲映射 配置檢查,47,ATF測試腳本配置檢查, 測試指定封裝情況下是否能正?;ネ?DUT1 Config “interfac
23、e $intf(DUT1,PORT1) mtu 1200 description “檢查DUT1端口PORT1的MTU為1500 type command object CE1 args “display interface $intf(DUT1,PORT1)” expect “Maximum Transmit Unit is 1200” ,48,向設(shè)備下發(fā)配置命令,DUT1 Config “ interface $intf(DUT1,PORT1) shutdown quit “,Quidway-ospf-100 System-View Quidwayinterface Ethernet0/1
24、 Quidway-Ethernet0/1shutdown Quidway-Ethernet0/1quit Quidway,格式:ATF封裝了兩個發(fā)送命令的方法: 邏輯設(shè)備名稱 Send “命令字符串” 邏輯設(shè)備名稱 Config “命令字符串” 特點:Send在命令返回信息中出現(xiàn)More的時候會自動發(fā)送空格,以得到完整的結(jié)果Config 是對Send的擴展,它每次都從系統(tǒng)視圖發(fā)送命令 舉例:,49,檢查運行結(jié)果,類型:command, route, ping, custom, text 結(jié)果:pass,failed 一般格式: description descr type type args
25、args object obj expect ?opt? exp repeat times ?-interval seconds ? whenfailed args ,50,說明:檢查的一般格式,args和expect指定的參數(shù)與檢查類型有關(guān) 對于任何類型的檢查,expect參數(shù)可以帶有-negative選項,表示取反 repeat參數(shù)設(shè)置重復(fù)檢查,ATF一般只有前一次檢查失敗時才進行重復(fù) whenfailed參數(shù)設(shè)置檢查失敗時的動作 最后一個單獨的真正的執(zhí)行檢查,前面只是設(shè)置參數(shù),51,Command檢查,類型:, description STP默認狀態(tài)為Disabled type comm
26、and object DUT1 expect Spanning tree protocol is disabled args display stp ,說明: object后面的參數(shù)為邏輯設(shè)備的名稱 expect參數(shù)指定的字符串為執(zhí)行命令時期望得到的字符串,默認為單詞檢查,帶-exact參數(shù)時執(zhí)行字符串檢查。 args參數(shù)指定要執(zhí)行的命令,52,Text檢查,類型:, description STP默認狀態(tài)為Disabled type text expect Spanning tree protocol is disabled args $target ,說明: text檢查忽略object參
27、數(shù) expect為期望得到的字符串,可以帶有-exact選項 args參數(shù)指定要檢查的字符串,53,Route檢查,類型:, description 在RTA上檢查RTC的lo0口路由 type route object RTA args $rtEntry(RTC,lo0) -nexthop $addr(RTC,s0) -protocol ospf ,說明: args參數(shù)指定期望存在的路由,可以是多行其完整格式為:route_entry ?-vrf vrf_name? ?-nexthop nexthop? ?-protocol protocol? ?-metric metric? ?-inte
28、rface intf? ?-preference pref? expect參數(shù)省略,54,Route檢查:Expect參數(shù), expect ?-negative? expect_result expect_result 為route的檢查結(jié)果,可以為 -5 1之間的整數(shù)。 1 - 滿足條件的路由存在 0 - 相應(yīng)路由項對應(yīng)的路由不存在 -1 - 相應(yīng)路由項對應(yīng)的路由存在,但是下一跳不匹配 -2 - 相應(yīng)路由項對應(yīng)的路由存在,但是路由類型不匹配 -3 - 相應(yīng)路由項對應(yīng)的路由存在,但是metric不匹配 -4 - 相應(yīng)路由項對應(yīng)的路由存在,但是優(yōu)先權(quán)不匹配 -5 - 相應(yīng)路由項對應(yīng)的路由存在,但
29、是出接口不匹配,55,Ping檢查,類型:, description 檢查RTB和RTC之間能否ping通 type ping object RTB args $addr(RTC,s1) -size 3000 expect 80 ,說明: args 設(shè)置ping的參數(shù),完整的語法格式為: dest_ip ?-size size? ?-timeout milliseconds? ?vrf vrf_name? ?source source_ip? Expect參數(shù)指定期待的通過率如果檢查不能ping通,該數(shù)值為0; 支持Ping檢查的設(shè)備類型:VRP設(shè)備,PC,56,Custom檢查,類型:, d
30、escription “檢查DUT1轉(zhuǎn)發(fā)包的數(shù)量小于100 type custom args “expr $packets ,說明: packet為一個已經(jīng)存在的變量,前面加$對其取值 args 設(shè)置執(zhí)行的命令命令執(zhí)行的結(jié)果不等于,則檢查通過;否則檢查失敗 custom類型的檢查用eval執(zhí)行args設(shè)置的參數(shù),因此參數(shù)必須為合法TCL語句 custom類型的檢查忽略object和expect參數(shù),一般也不設(shè)置repeat參數(shù),57,一個完整的腳本,下面是一個完整腳本所包含的三個文件:,腳本命名規(guī)范:模塊名稱_模塊編號_腳本編號_測試床編號_邏輯拓撲編號.tcl 測試床命名規(guī)范:模塊名稱_模塊
31、編號_測試床編號.tbd 拓撲文件命名規(guī)范:模塊名稱_模塊編號_拓撲文件編號.topo,58,ATF腳本開發(fā),ATF腳本框架 測試床 邏輯拓撲 測試用例 運行腳本,59,執(zhí)行腳本,設(shè)置腳本路徑 設(shè)置測試床文件 設(shè)置日志存放路徑 設(shè)置Source路徑 設(shè)置高級執(zhí)行選項 Run,60,設(shè)置腳本路徑,61,設(shè)置ATF常用選項,62,設(shè)置Source路徑,63,設(shè)置執(zhí)行參數(shù),SET_RUNNING_PARAM Param value 該方法用于設(shè)置腳本執(zhí)行參數(shù); if_level2|3: -2表示測試例執(zhí)行時使用測試床描述的二層接口; -3表示測試例執(zhí)行時使用測試床描述的三層接口; 對于vlaneth形式描述的測試床而言,if_level為2時,intf變量取值為eth端口名稱,為3時取值為vlan虛接口,64,Run:打開腳本執(zhí)行,65,Run:選擇腳本執(zhí)行,66,腳本使用指南,ATF腳本框架 執(zhí)行腳本 執(zhí)行測試集,67,生成測試集文件,測試集: 就是測試腳本的集合,執(zhí)行時依次執(zhí)行包含的所有腳本文件,68,Exam
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 探索化學(xué)奧秘:初中化學(xué)實驗設(shè)計與探究教學(xué)大綱
- 在線教育平臺課程研發(fā)手冊
- 農(nóng)業(yè)項目立項申請報告怎么寫
- 部門間往來文書范例與指南
- 農(nóng)業(yè)現(xiàn)代化智能種植大數(shù)據(jù)分析平臺
- 三農(nóng)產(chǎn)品冷鏈物流運作手冊
- 基坑支護工程安全施工方案
- 三農(nóng)產(chǎn)業(yè)發(fā)展規(guī)劃作業(yè)指導(dǎo)書
- 新能源汽車充電樁前景
- 酒店財務(wù)管理的技巧和要點作業(yè)指導(dǎo)書
- 第十八屆“地球小博士”全國地理知識科普競賽題庫(附答案)
- 2023版北京協(xié)和醫(yī)院重癥醫(yī)學(xué)科診療常規(guī)
- 千里江山圖解析課件
- 《現(xiàn)代漢語常用字表》3500個漢字
- 道路通行能力計算題
- 經(jīng)濟學(xué)基礎(chǔ)完整版ppt-全體教學(xué)教程課件最新
- JJF(湘) 09-2018 純水-超純水系統(tǒng)監(jiān)測儀表(電導(dǎo)率)計量校準規(guī)范-(高清現(xiàn)行)
- SJG 82-2020 政府投資學(xué)校建筑室內(nèi)裝修材料空氣污染控制標準-高清現(xiàn)行
- 智慧園區(qū)平臺用戶操作手冊
- 精品市政道路施工測量方法及測量方案
- 小型手推清掃車畢業(yè)設(shè)計說明書課件
評論
0/150
提交評論