版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Watir 加速面向 Web 應(yīng)用的自動(dòng)化測(cè)試程序的使用Watir加速面向Web應(yīng)用的自動(dòng)化測(cè)試程序的開發(fā)引言隨著Web應(yīng)用的流行與其復(fù)雜度的增加,以及軟件過程敏捷化要求的提升,自動(dòng)化測(cè)試成為保障項(xiàng)目成功的一個(gè)重要因素。因?yàn)樽詣?dòng)化測(cè)試可以大大地減少測(cè)試人員的重復(fù)工作,加快測(cè)試速度,使測(cè)試更加頻繁,從而保證了項(xiàng)目的質(zhì)量和進(jìn)度。此種情況下,測(cè)試人員更加需要一個(gè)功能強(qiáng)大且簡(jiǎn)單易用的自動(dòng)化測(cè)試工具,輔助測(cè)試人員搭建測(cè)試框架,設(shè)計(jì)自動(dòng)測(cè)試程序,而又盡可能減少自動(dòng)化測(cè)試程序的開發(fā)和維護(hù)成本.本文所要介紹的Watir(Web Application Testing in Ruby)是一個(gè)優(yōu)秀的開源工具,用于
2、開發(fā)基于Web應(yīng)用的自動(dòng)化測(cè)試程序。它使用Ruby腳本語言,提供了輕量級(jí)的自動(dòng)化測(cè)試程序框架和豐富的開發(fā)庫(kù),有效地加速了自動(dòng)化測(cè)試程序開發(fā)。本文介紹了Watir的主要功能和特點(diǎn),以及如何搭建Watir的開發(fā)運(yùn)行環(huán)境,并通過一些代碼示例詳細(xì)地介紹了構(gòu)建一個(gè)Watir自動(dòng)測(cè)試程序的主要步驟。本文同時(shí)介紹了用Watir開發(fā)自動(dòng)化程序的幾個(gè)關(guān)鍵技術(shù):如何在復(fù)雜頁(yè)面中選擇一個(gè)合適的對(duì)象識(shí)別方式;如何使用Ruby提供的交互式工具IRB來加速Watir程序的開發(fā)和調(diào)試;如何用YAML文件管理測(cè)試數(shù)據(jù),并通過Watir程序來讀取和解析;如何繼承Ruby的單元測(cè)試框架來創(chuàng)建和調(diào)用測(cè)試用例,以及測(cè)試用例集等。本文
3、的聽眾為對(duì)自動(dòng)化測(cè)試有興趣,并且對(duì)自動(dòng)化測(cè)試基本知識(shí)有一定了解的開發(fā)人員和測(cè)試人員。Watir是一個(gè)輕量級(jí)的用于開發(fā)基于Web應(yīng)用的自動(dòng)化測(cè)試框架,它基于Ruby語言,提供了豐富的開發(fā)庫(kù),簡(jiǎn)化了自動(dòng)化測(cè)試程序開發(fā)。下面我們總結(jié)了Watir的主要一些優(yōu)良特性:Watir基于Ruby語言。Ruby是面向?qū)ο笳Z言,功能強(qiáng)大,簡(jiǎn)單易用。程序解釋執(zhí)行不用編譯;Watir支持多種操作系統(tǒng)平臺(tái),包括Windows,Mac,Linux;同時(shí)支持多種主流瀏覽器,如IE,Firefox,ChromeWatir提供了豐富的開發(fā)庫(kù),封裝了包括瀏覽器窗口windows,button,link,dialog,image,
4、table,div等絕大多數(shù)HTML對(duì)象類型,方便測(cè)試人員快速構(gòu)建自動(dòng)化測(cè)試程序。Ruby提供了強(qiáng)大的交互命令工具IRB(Interactive Ruby Shell),在Watir程序開發(fā)中,我們使用IRB調(diào)試代碼。別于傳統(tǒng)調(diào)試方法,測(cè)試人員可以就單獨(dú)一條命令或者一段程序進(jìn)行調(diào)試,從而能夠快速定位錯(cuò)誤,節(jié)省調(diào)試時(shí)間。Ruby提供了Test:Unit單元測(cè)試框架,通過繼承該框架,我們可以對(duì)測(cè)試用例,測(cè)試用例集(Test Suites)進(jìn)行靈活方便地組合和調(diào)用,并且可利用斷言(Assertion)來驗(yàn)證測(cè)試結(jié)果。其他腳本語言如Perl,Python,Shell等也可以很好地集成到Watir程序中
5、。Watir程序在運(yùn)行時(shí),允許測(cè)試人員在該測(cè)試機(jī)器上訪問其他網(wǎng)頁(yè)或者進(jìn)行其他操作而不會(huì)影響到對(duì)象識(shí)別的結(jié)果。下載Ruby包,在window平臺(tái)可下載Ruby 1.8.6 One-Click Installer,按照向?qū)О惭b下載并自動(dòng)更新RubyGems到最新版本。注意:Gem是指任何一個(gè)打包好的Ruby庫(kù),這些Ruby庫(kù)通過Gem命令來安裝,卸載。C:Documents and SettingsAdministrator gem update system Updating RubyGems Updating rubygems-update安裝Watir庫(kù),下面以Window上安裝Watir1
6、.5.6為例:C:Documents and SettingsAdministratorgem install water Successfully installed water-1.5.x Installing ri documentation for water-1.5.xInstalling RDoc documentation for water-1.5.x.在安裝完Watir后,可以運(yùn)行Watir自帶的Unit Tests,用以驗(yàn)證Watir是否安裝成功。Unit Tests程序位于Ruby安裝目錄librubygems.8gemswatir-1.5.6unittestscore_
7、tests.rb,具體每一項(xiàng)檢查結(jié)果會(huì)輸出到console中。獲取網(wǎng)頁(yè)對(duì)象屬性是開發(fā)GUI自動(dòng)化測(cè)試程序的必要一步。雖然Watir本身沒有提供類似RFT中Object Capture的對(duì)象捕捉器,但在Watir程序的開發(fā)中,我們可以配合使用一些第三方提供的運(yùn)行在瀏覽器端的Html查看器,以便網(wǎng)頁(yè)結(jié)構(gòu)和對(duì)象屬性的查看。比如,IE瀏覽器可安裝Microsoft IE Explorer Develop Toolbar;Firefox瀏覽器,可安裝Firebug。這些查看器具有以下類似功能:可方便瀏覽整個(gè)網(wǎng)頁(yè)DOM結(jié)構(gòu)樹;可察看各種類型對(duì)象(table,image,text,link等)的具體屬性及屬
8、性值。支持對(duì)象查找和過濾支持HTML和CSS源代碼查看圖1.IE瀏覽器啟動(dòng)IE Develop Toolbar我們以IE中為例(如圖1),在IE工具欄中點(diǎn)擊光標(biāo)狀圖標(biāo)(如圖中紅色方塊標(biāo)識(shí)),IE Developer Toolbar就會(huì)在當(dāng)前瀏覽器下方打開。其中左邊一欄顯示了該網(wǎng)頁(yè)的DOM樹。當(dāng)選中該DOM樹上的某個(gè)節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)面上的某對(duì)象就會(huì)高亮閃爍顯示(如圖中Log In按鈕被選中);中間一欄列出了選中對(duì)象的屬性及屬性值,如圖中,Login按鈕有三個(gè)屬性name,id,type;右邊一欄為當(dāng)前對(duì)象的一些特性和風(fēng)格。當(dāng)我們想查看某個(gè)對(duì)象的屬性時(shí),可以點(diǎn)擊IE Developer To
9、olbar最左上角的圖標(biāo),選中該對(duì)象,其所在的DOM節(jié)點(diǎn),屬性以及屬性值就會(huì)列在當(dāng)前瀏覽器下方。除此之外,IE Developer Toolbar還提供了另外一些有用的功能方便自動(dòng)化程序的開發(fā)和調(diào)試。如用各種顏色框體標(biāo)出所有指定的對(duì)象類型(如table cells,table,DIV,images等),在網(wǎng)頁(yè)上列出所有圖片的ALT值,所有鏈接的路徑,以及所有對(duì)象的類型和ID等。SciTe是安裝Ruby后自帶的單文檔編輯器,但它不適合較大規(guī)模程序開發(fā)。而Eclipse集成開發(fā)環(huán)境不僅方便程序的開發(fā)和調(diào)試,而且它與CVS版本控制緊密綁定,并對(duì)團(tuán)隊(duì)協(xié)作開發(fā)很好支持,所以我們可以在Eclipse集成環(huán)
10、境中安裝Ruby插件,搭建Watir的開發(fā)和運(yùn)行環(huán)境,以下為具體步驟:在Eclipse中下載最新版Ruby插件,下載地圖2.在Eclipse中下載最新版Ruby插件添加Ruby解釋器。點(diǎn)擊"Window"-"Preferences"-"Ruby"-"Installed Properties",點(diǎn)擊"Add"按鈕,選擇并關(guān)聯(lián)Ruby.exe作為Ruby解釋器。圖3.在Eclipse中添加Ruby解釋器當(dāng)Ruby安裝完成后,項(xiàng)目視圖中會(huì)添加Ruby Resource一項(xiàng),開發(fā)人員可以在該視圖下編寫或
11、查看Watir程序。圖4.Ruby Resource視圖Watir是一個(gè)Ruby開源庫(kù),閱讀其源代碼不僅可以了解Watir API的具體實(shí)現(xiàn),同時(shí)它本身也是編寫Ruby和Watir的很好的代碼示例。所以我們可以在Eclipse中引入WATIR項(xiàng)目。Watir源碼位于Ruby安裝目錄librubygems.8gemswatir-version,一下為WATIR項(xiàng)目結(jié)構(gòu)。其中unittests目錄下是對(duì)Watir所支持的頁(yè)面對(duì)象類型以及主要的API進(jìn)行單元測(cè)試的Ruby程序,我們?cè)诰帉慦atir自動(dòng)化程序時(shí)不妨多多參考。圖5.WATIR項(xiàng)目結(jié)構(gòu)在Watir開發(fā)環(huán)境搭建好后,我們開始創(chuàng)建一個(gè)Wati
12、r自動(dòng)化測(cè)試程序項(xiàng)目,通常有以下一些步驟:在Eclipse中創(chuàng)建一個(gè)Ruby項(xiàng)目。從菜單選擇File-New-New-Project-Ruby Project,并給定項(xiàng)目名稱;搭建自動(dòng)化測(cè)試程序框架,我們可以延續(xù)IBM的三層自動(dòng)化體系結(jié)構(gòu),從下到上分別是公共對(duì)象(Object),任務(wù)(Task),測(cè)試用例和測(cè)試用例集(Test Case)。編寫第一個(gè)Watir程序。Ruby語言簡(jiǎn)單直觀,Watir庫(kù)的使用語法也非常簡(jiǎn)潔。在使用Watir庫(kù)之前,我們首先要引入Watir庫(kù)。require'watir'#引用Watir庫(kù)ie=Watir:IE.new#創(chuàng)建一個(gè)IE瀏覽器實(shí)例ie.g
13、oto("https:/10:9043/ibm/console")ie.button(:type,'submit').click#識(shí)別對(duì)象并對(duì)對(duì)象進(jìn)行操作使用IE Explorer Developer Toolbar去抓取Web頁(yè)面對(duì)象屬性,使用方法在如何安裝IE Developer Toolbar已經(jīng)介紹。通過繼承Test:Unit框架編寫測(cè)試用例和測(cè)試用例集;通過斷言Assertion為測(cè)試用例添加測(cè)試結(jié)果驗(yàn)證,并通過日志及截屏(類Watir:ScreenCapture提供了對(duì)截屏的支持)記錄測(cè)試結(jié)果在YAML或Excel中準(zhǔn)備測(cè)試
14、數(shù)據(jù);啟動(dòng)IRB(Interact Ruby Shell)來調(diào)試Watir代碼片段;運(yùn)行Ruby程序有多種方式:在Eclipse環(huán)境中,打開Ruby視圖,選中某Ruby程序,點(diǎn)擊右鍵,選中"Run As"-"Ruby Application";另外,也可以在文件目錄下雙擊某rb文件,運(yùn)行該Ruby程序;圖6.在Eclipse中運(yùn)行Ruby程序查看運(yùn)行日志,分析測(cè)試結(jié)果。在下文中,我們將對(duì)上述構(gòu)建Watir自動(dòng)化測(cè)試程序中的一些關(guān)鍵技術(shù)進(jìn)行具體介紹。抓取Web頁(yè)面對(duì)象屬性是構(gòu)建自動(dòng)化測(cè)試程序第一步。Watir給我們提供了多種對(duì)象識(shí)別方式,包括通過單屬性查詢
15、,多屬性組合查詢,正則表達(dá)式匹配和XPath查詢等。我們?cè)陧?xiàng)目中采用哪種頁(yè)面對(duì)象識(shí)別方式,要從各搜索方法適用的條件以及對(duì)頁(yè)面結(jié)構(gòu)的復(fù)雜度和搜索速度兩方面綜合考慮。單屬性查詢當(dāng)頁(yè)面中某對(duì)象可以由某個(gè)屬性唯一標(biāo)識(shí)時(shí),可以用單屬性查詢法。其語法遵循$ie.object_class(:attribute,"attribute value"),如$ie.button(:id,"submit").exists?$ie.div(:id,"div3").exists?$ie.image(:alt,"flower").exists?
16、$ie.link(:url,"https:/localhost:9043/ibm/console").exists?多屬性組合查詢當(dāng)一個(gè)頁(yè)面中存在多個(gè)屬性相同的對(duì)象,不能通過單個(gè)屬性來識(shí)別某個(gè)對(duì)象時(shí),我們可以用多個(gè)屬性組合來查詢,如一數(shù)據(jù)表格中有多行,每行分別有一個(gè)radio按鈕,它們名字屬性相同,在這種情況下,我們可以通過兩個(gè)屬性,如名字(name)和索引(Index)的組合來進(jìn)行查詢。$ie.radio(:name='Employees',:index=2).exists?正則表達(dá)式匹配Watir支持正則表達(dá)式模糊匹配,它適合于識(shí)別動(dòng)態(tài)創(chuàng)建的頁(yè)面對(duì)象。其
17、語法是查詢條件為正則表達(dá)式,正則表達(dá)式由字符串前后附加的兩個(gè)反斜杠/來標(biāo)明,如WAS Console鏈接https:/:9043/ibm/console,由于主機(jī)名依賴于測(cè)試環(huán)境,所以我們可以用以下幾種正則表達(dá)式查詢方法來識(shí)別。$ie.link(:url,/9043/ibm/console/).click或者是$ie.link(:url,/https:/:9043*/).click注:*代表任何字符,一些特殊字符,如"()."需要轉(zhuǎn)義,我們可以在irb模式下輸入Regexp.escap"string to be converte
18、d",就能得到轉(zhuǎn)義后的字符串XPath查詢XPath是Watir提供的一個(gè)強(qiáng)大查詢。我們?cè)陂_發(fā)Web自動(dòng)化程序的時(shí)候可能會(huì)經(jīng)常碰到,一些對(duì)象很難被一個(gè)或一些屬性來唯一描述,此時(shí)使用XPath查詢就非常必要。另外,當(dāng)頁(yè)面DOM樹結(jié)構(gòu)較為復(fù)雜(如有很多嵌套的表格),而查詢對(duì)象在較深的層次時(shí),使用XPath查詢會(huì)加速對(duì)象的搜索。其表達(dá)式為$ie.object_class(:xpath,"xpath query"),比如:$ie.table(:xpath,"/tableid='t1'/").exists?IRB(Interactive
19、Ruby Shell)是Ruby提供的一個(gè)功能強(qiáng)大的交互式Shell.我們可以使用IRB快速調(diào)試程序片段,比如快速定位復(fù)雜頁(yè)面中一個(gè)對(duì)象,如表格等,以及如何在IRB中就一條命令或者一個(gè)程序片斷進(jìn)行單獨(dú)調(diào)試。下面為一些例子:在命令行中輸入"irb"以啟用IRB模式。接著就可以輸入Ruby命令。Ruby命令被立即解釋執(zhí)行,并返回結(jié)果。圖7.執(zhí)行Ruby命令啟用Watir庫(kù)圖8.啟用Watir庫(kù)打開一個(gè)新的IE瀏覽器窗口,并綁定URL(https:/0:9043/ibm/console)。命令執(zhí)行后返回一些頁(yè)面屬性和性能指標(biāo),如窗口句柄,頁(yè)面下載速度等。另外
20、變量ie為全局變量,下面對(duì)該變量ie的操作都將基于該瀏覽器窗口。圖9.打開一個(gè)新的IE瀏覽器窗口使用show_all_objects方法列出頁(yè)面上所有對(duì)象,以及它們相應(yīng)的屬性和屬性值。該方法在查找復(fù)雜頁(yè)面的對(duì)象是時(shí)尤為重要。表1列出了其它的show函數(shù),調(diào)用這些命令可以列出頁(yè)面上相應(yīng)類型的所有對(duì)象。圖10.列出頁(yè)面上所有對(duì)象表1.其它show函數(shù)列表show_images列出所有的圖片show_tables列出所有的表格show_spans列出所有的Span show_labels列出所有的標(biāo)簽show_links列出所有的鏈接show_divs列出所有的DIV show_frames列出所有
21、的框架show_forms列出所有的Form當(dāng)我們想確定頁(yè)面對(duì)象是否能被某些屬性正確識(shí)別時(shí),可以調(diào)用flash方法,如果該對(duì)象被識(shí)別出,則它會(huì)高亮閃爍顯示。圖11.高亮閃爍顯示IRB不僅支持單行命令的解釋執(zhí)行,也支持一段代碼的運(yùn)行。在程序調(diào)試中,我們可以針對(duì)有問題的代碼單獨(dú)在IRB中調(diào)試運(yùn)行,我們只需準(zhǔn)備調(diào)試該段代碼所需的測(cè)試環(huán)境狀態(tài),這樣就無需每次從打開一個(gè)新的IE窗口開始,從頭運(yùn)行大段代碼,從而節(jié)省了調(diào)試時(shí)間。YAML是一種可讀性很強(qiáng)的數(shù)據(jù)序列化格式。它可以通過對(duì)數(shù)據(jù)的簡(jiǎn)單的格式化來簡(jiǎn)單直觀地表示數(shù)據(jù)之間的映射關(guān)系和層次結(jié)構(gòu)等。下面的YAML例子中,我們創(chuàng)建了一個(gè)包含3套測(cè)試環(huán)境信息的數(shù)據(jù)
22、字典,每套環(huán)境包括測(cè)試環(huán)境URL,用戶名,密碼,測(cè)試數(shù)據(jù)文件路徑。-ENV_ID:Env1 ENV_Infor:TEST_URL:"https:/xxx/index.html"USERNAME:"user1"PASSW0RD:"passw0rd"TEST_DATA_FILE:"/test_data_env1.xls"-ENV_ID:Env1 ENV_Infor:TEST_URL:"https:/xxx/index.html"USERNAME:"user2"PASSW0RD:&
23、quot;passw0rd"TEST_DATA_FILE:"/test_data_env2.xls"-ENV_ID:Env3 ENV_Infor:TEST_URL:"https:/xxx/index.html"USERNAME:"user3"PASSW0RD:"passw0rd"TEST_DATA_FILE:"/test_data_env3.xls"下面一段簡(jiǎn)單的Ruby程序用來讀取和解析該YAML文件。def getEnvInfor(env_id)File.open('env
24、.yaml')do|yf|YAML.each_document(yf)do|data|if data'ENV_ID'=env_id$test_url=data'ENV_Infor''TEST_URL'$username=data'ENV_Infor''USERNAME'$password=data'ENV_Infor''PASSW0RD'$test_data_file=data'ENV_Infor''TEST_DATA_FILE'end end
25、 end end Ruby提供了完善的單元測(cè)試框架。在Watir程序開發(fā)中,測(cè)試人員可以通過繼承該框架,很方便地編寫自動(dòng)測(cè)試用例以及測(cè)試用例集(Test Suites)。以下是一些在Watir程序開發(fā)過程中常用到的類和模塊Test:Unit:Assertions,該模塊提供了多種斷言(Assert)方法,可用于測(cè)試結(jié)果的驗(yàn)證,如操作對(duì)象的狀態(tài)的判定(如頁(yè)面某對(duì)象是否存在,是否可用),或者消息顯示是否與期望值匹配等assert($ie.area(:alt,'Table Buttons').exists?)assert($ie.radio(:name,"box1"
26、;).enabled?)assert_match(test.html/,browser.link(:class_name,'test').href)assert_equal(ie.text_field(:id,"text2"),"Hello World")Test:Unit:TestCase定義了測(cè)試用例類,它包括兩個(gè)非常有用的公共方法:setup(),teardown(),它們分別會(huì)在每個(gè)測(cè)試用例啟動(dòng)前和運(yùn)行后被調(diào)用。所以Setup()通常用于準(zhǔn)備測(cè)試環(huán)境和測(cè)試數(shù)據(jù),如打開IE窗口,登錄應(yīng)用,打開數(shù)據(jù)文件之類操作;而teardown()
27、則用于釋放資源和還原測(cè)試環(huán)境,如關(guān)閉IE窗口,退出應(yīng)用等。除此之外,用戶可自定義其他測(cè)試用例方法,只要方法名遵守一定的命名規(guī)則,即以"test_"為前綴,在程序運(yùn)行時(shí)測(cè)試用例就會(huì)按照方法名的字母排列順序被自動(dòng)調(diào)用。比如在下面的樣例代碼中,方法被調(diào)用的順序?yàn)椋簣D12.方法被調(diào)用的順序清單2.測(cè)試用例調(diào)用require'Watir'#引入Watir庫(kù)require'test/unit'#引入Test:Unit庫(kù)class TC_MyTest1 Test:Unit:TestCase#繼承類Test:Unit:TestCase include Wat
28、ir:Exception include Watir:ScreenCapture def setup getEnvInfor('Env1')#獲取環(huán)境信息if!defined?$logger#初始化日志$logger=LoggerFactory.start_xml_logger(FILE_PREFIX)end if!defined?$screen#初始化截屏對(duì)象$screen=Watir:ScreenCapture.new end if!defined?$browser#初始化IE瀏覽器$browser=Watir:IE.attach(:url,"https:/localhost:9043/ibm/console")end login($USERNAME,$PASSW0RD)#登錄應(yīng)用end def teardown logout()#退出應(yīng)用$browser.close if defined?$browser#關(guān)閉IE瀏覽器end def test_testcase1#測(cè)試用例1$logger.log("Test Case 1")$browser.button(:type,'submit').click end def test_testcase2#測(cè)試用例2$log
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境電商倉(cāng)儲(chǔ)承包租賃合同4篇
- 2025年度玩具鋪貨市場(chǎng)拓展合同范本
- 二零二五年度程海保護(hù)區(qū)生態(tài)保護(hù)項(xiàng)目生態(tài)補(bǔ)償金審計(jì)合同3篇
- 二零二五版鋁合金門窗行業(yè)知識(shí)產(chǎn)權(quán)保護(hù)合同9篇
- 2025年度美容院美容院美容服務(wù)外包合同
- 2025年度企業(yè)內(nèi)部團(tuán)建活動(dòng)策劃與實(shí)施合同4篇
- 2025年度文化創(chuàng)意產(chǎn)品設(shè)計(jì)開發(fā)及推廣合同4篇
- 二零二五版核電站運(yùn)行人員保密與應(yīng)急處理合同3篇
- 2025年民營(yíng)醫(yī)院?jiǎn)T工勞動(dòng)合同解除及競(jìng)業(yè)限制合同
- 二零二五年度電子產(chǎn)品組裝代工合同模板4篇
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測(cè) (一)化學(xué)試題(含答案)
- 《國(guó)有控股上市公司高管薪酬的管控研究》
- 《創(chuàng)傷失血性休克中國(guó)急診專家共識(shí)(2023)》解讀課件
- 小學(xué)六年級(jí)數(shù)學(xué)100道題解分?jǐn)?shù)方程
- YY 0838-2021 微波熱凝設(shè)備
- 通信機(jī)房蓄電池放電試驗(yàn)報(bào)告
- 病原細(xì)菌的分離培養(yǎng)
- EDA課程設(shè)計(jì)報(bào)告書--八音電子琴
- 可打印的空白記賬憑證
- 化工設(shè)備圖資料PPT課件
- 人大教科文衛(wèi)委工作總結(jié)及工作計(jì)劃
評(píng)論
0/150
提交評(píng)論