




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、I. 背景介紹1. 簡介功能測試、性能測試、GUI自動化回歸測試已經(jīng)能夠滿足我們的測試需求,保證網(wǎng)站質(zhì)量,而隨著產(chǎn)品功能越來越多、系統(tǒng)架構(gòu)越來越復(fù)雜、新人越來越多,一些預(yù)想不到的缺陷出現(xiàn)在我們面前,我們必須 要尋找一種更加有效的測試方法來適應(yīng)當(dāng)前的變化,保證產(chǎn)品的質(zhì)量。因此接口測試應(yīng)運(yùn)而生。對于Web接口應(yīng)用,包含瀏覽器與服務(wù)器交互的HTTP協(xié)議的接口和 webService接口,軟件測試人員在日常的測試工作中,需要大量的手動操作來驗證接口的功能。開發(fā)人員在開發(fā)過程中,需要訪問其應(yīng)用 并且驗證其功能是否正常運(yùn)行,反復(fù)調(diào)試重復(fù)驗證。系統(tǒng)維護(hù)人員也需要經(jīng)常訪問其應(yīng)用,以確保系統(tǒng)的 正常運(yùn)行。如果某
2、系統(tǒng)的接口較多,功能較為復(fù)雜,如上所述的這些操作就需要花費(fèi)大量的時間和人力, 如能引入自動化測試代替人工重復(fù)操作,將極大地提高團(tuán)隊的生產(chǎn)效率。在這里,我們將介紹如何使用 HttpClie nt 框架完成接口自動化測試。2. web接口自動化測試如今,大多數(shù)的應(yīng)用軟件是基于Web的應(yīng)用程序并通過瀏覽器展示給用戶并與之進(jìn)行交互。不同公司和機(jī)構(gòu)組織都需要測試這些應(yīng)用程序的有效性。在一個高度交互性和響應(yīng)的軟件時代,許多組織及團(tuán)隊傾 向于運(yùn)用敏捷開發(fā)理論,自動化測試一定程度上成為了敏捷開發(fā)流程中不可或缺的手段。所謂自動化測試,就是執(zhí)行自動測試工具或者用某種程序設(shè)計語言編寫程序,控制被測軟件中的各種模塊,
3、模擬手動測試步 驟,完成測試的過程。測試自動化有很多優(yōu)點(diǎn),比如:頻繁快速的迭代回歸、高效的測試反饋、一致與重 復(fù)性的執(zhí)行、化繁為簡的形式、彌補(bǔ)手工測試的可能遺漏缺陷等。目前也有許多商業(yè)和開源的軟件,可輔 助面向 Web 接口自動化測試,如:HttpClient 、HttpUnit 、HtmlUnit、JwebUnit 等。HttpClient 是一 個功能豐富支持 HTTP協(xié)議的客戶端編程工具包,能夠很好滿足我們對接口的自動化測試。II. 協(xié)議請求1. HTTP協(xié)議HTTP協(xié)議即超文本傳輸協(xié)議,是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則,通過因 特網(wǎng)傳送萬維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議。請
4、求信息請求行: 例如GET /images/logo.gif HTTP/1.1,表示從/images目錄下請求logo.gif這個文件。請求頭: 例女口 Accept-Language: en。空行可選消息體:請求行和標(biāo)題必須以<CR><LF作為結(jié)尾(也就是,回車然后換行)??招袃?nèi)必須只有<CR><LF> 而無其他空格。在 HTTP/1.1協(xié)議中,所有的請求頭,除post夕卜,都是可選的。請求方法HTTP/1.1協(xié)議中共定義了八種方法 (有時也叫“動作”)來表明Request-URL制定的資源不同操作方式。 比較常用的方法有 HEAD POST GET
5、方法。HEAD:向服務(wù)器索要與 GET請求相一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以在不必傳輸整個響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。GET請求獲取Request-URL所標(biāo)識的資源。HEAD方法和GET方法幾乎是一樣的,對于HEAD請求的回應(yīng)部分來說,它的HTTP頭部中包含的信息與通過GET請求所得到的信息時相同的。利用這個方法,不必傳輸整個資源內(nèi)容,就可以得到Request-URL所標(biāo)識的資源信息,該方法常用于測
6、試連接的有效性,是否可以訪問,以及最近是否更新。在本文使用的接口自動化框架中,主要使用POST和GET方法發(fā)送請求,下面對這兩種方法簡單做一下 比較:1、GET提交的數(shù)據(jù)會放在 URL之后,以?分割 URL和傳輸數(shù)據(jù),參數(shù)之間以 &相連,如EditPosts.aspx?name=test1 &id=123456。 POST方法是把提交的數(shù)據(jù)放到HTTP協(xié)議包的 Body 中。2、 GET提交的數(shù)據(jù)大小有限制(因為瀏覽器對URL的長度有限制),而 POST方法提交的數(shù)據(jù)沒有限 制。3、 GET方式提交數(shù)據(jù),會帶來安全問題,比如一個登陸頁面,通過GET方式提交數(shù)據(jù)時,用戶名和密碼將
7、出現(xiàn)在URL上,如果頁面可以被緩存或者其他人訪問這臺機(jī)器,就可以從歷史記錄獲得該用戶的賬號和密碼。響應(yīng)信息在接收和解釋請求消息后,服務(wù)器返回一個 HTTP響應(yīng)信息。HTTP響應(yīng)也是由三個部分組成,分別是:狀態(tài)行、響應(yīng)頭信息和響應(yīng)正文。狀態(tài)行:包含HTTP-Version表示服務(wù)器HTTP協(xié)議的版本;Status-Code表示服務(wù)器返回的響應(yīng)狀態(tài)碼; Reaso n-Phrase表示狀態(tài)代碼的文本描述。響應(yīng)頭信息 :包括通用頭、請求頭、響應(yīng)頭和實(shí)體頭四個部分。(具體內(nèi)容可以去網(wǎng)上查閱相關(guān)內(nèi)容)響應(yīng)正文 :響應(yīng)正文就是服務(wù)器返回的資源的內(nèi)容。2. Soap 協(xié)議接口自動化框架測試中,有些模塊之間采
8、用了Soap協(xié)議的請求方式,本節(jié)我們對Soap協(xié)議進(jìn)行簡單的介紹。Soap協(xié)議即簡單對象訪問協(xié)議,是一種輕量的、簡單的、基于XML (標(biāo)準(zhǔn)通用標(biāo)記語言的一個子集)的協(xié)議,它被設(shè)計成 WEB上交換結(jié)構(gòu)化和固化的信息。Soap使用基于XML的數(shù)據(jù)結(jié)構(gòu)和超文本傳輸協(xié)議(HTTP)的組合定義了一個標(biāo)準(zhǔn)的方法來使用In ternet上各種不同的操作環(huán)境中的分布式對象。Soap協(xié)議包含四部分封裝 :定義一個框架, 該框架描述了消息中的內(nèi)容是什么, 誰應(yīng)當(dāng)處理它以及它是可選的還是必選的。 編碼規(guī)則 :定義了一種序列化的機(jī)制,用于交換應(yīng)用程序所定義的數(shù)據(jù)類型的實(shí)例。RPC表示:定義了用于表示遠(yuǎn)程過程調(diào)用和應(yīng)答
9、的協(xié)定。綁定 :定義了一種使用底層傳輸協(xié)議來完成在節(jié)點(diǎn)間交換封裝的約定。SOAP消息基本上是從發(fā)送端到接收端的單向傳輸,但它們常常結(jié)合起來執(zhí)行類似于請求/應(yīng)答的模式。所有的SOAP消息都使用 XML編碼。一條 SOAP消息就是一個包含有一個必需的SOAP的封裝包,一個可選的SOAP標(biāo)頭和一個必需的 SOAP體塊的XML文檔。把 SOAP綁定到 HTTP提供了同時利用 SOAP 的樣式和分散的靈活性的特點(diǎn)以及HTTP的豐富的特征庫的優(yōu)點(diǎn)。協(xié)議結(jié)構(gòu)Soap消息格式:<SOAP-ENV:E nvelope><SOAP:HEADER></SOAP:HEADER>&l
10、t;SOAP:Body></SOAP:Body></SOAP-ENV:E nvelope>III. H ttpCIient1. 簡介HTTP協(xié)議可能是現(xiàn)在In ternet上使用得最多、最重要的協(xié)議了, 越來越多的Java應(yīng)用程序需要直接 通過HTTP協(xié)議來訪問網(wǎng)絡(luò)資源。雖然在JDK的java net包中已經(jīng)提供了訪問 HTTP協(xié)議的基本功能, 但是對于大部分應(yīng)用程序來說,JDK庫本身提供的功能還不夠豐富和靈活。HttpCIient是Apache JakartaCommon下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協(xié)議的客戶端編程工具包,并且它支持
11、 HTTP協(xié)議最新的版本和建議。HttpCIient已經(jīng)應(yīng)用在很多的項目中,比如Apache Jakarta 上很著名的另外兩個開源項目Cactus和HTML Un it都使用了 HttpCIie nt?,F(xiàn)在HttpCIie nt最新版本為 HttpCIie nt4.3 (GA),在接口自動化測試框架中我們使用的版本為HttpCIient 4.2.5。2. 安裝在介紹HttpCIient的功能之前,首先需要安裝好HttpCIient。HttpCIient 可以在 /commons/httpclient/downloads.html下載。HttpC
12、Iient用到了 Apache Jakarta common下的子項目logging,你可以從這個地址 /site/dow nloads/dow nl oads_com mon s-loggi ng.cgi下載至 U com monlogging,從下載后的壓縮包中取出commons-logging.jar力口至U CLASSPATH中。HttpClient用到了 Apache Jakarta common下的子項目 codec,你可以從這個地址 /site/dow nl oads/dow nl o
13、ads_com mon s-codec.cgi下載至 U最新的common codec,從下載后的壓縮包中取出commons-codec-1.x.jar 力口至U CLASSPATH中。3. 功能介紹HttpClient 的主頁。HttpClient提供的主要的功能如下,要知道更多詳細(xì)的功能可以參見實(shí)現(xiàn)了所有 HTTP的方法(GET,POST,PUT,HEAD等)支持自動轉(zhuǎn)向支持HTTPS協(xié)議支持代理服務(wù)器等4. 基本功能使用GET方法1、創(chuàng)建 HttpCIient的實(shí)例。HttpClie nt httpCIie nt = new HttpCIie nt();2、 創(chuàng)建GET連接方法的實(shí)例,在
14、這里使用HttpGet方法。在HttpCet的構(gòu)造函數(shù)中傳入待連接的地址。HttpGet get = new HttpGet(url);3、 調(diào)用第一步創(chuàng)建好的實(shí)例的execute方法來執(zhí)行第二步中創(chuàng)建好的method實(shí)例。HttpResp onse httpResp onse = httpCIie nt.execute(get);4、讀取response。從返回的response中獲取狀態(tài)碼、響應(yīng)正文等信息。5、釋放連接。clie nt.getC onn ectio nMan ager().shutdow n();6、對得到后的內(nèi)容進(jìn)行處理。POST方法POST方法用來向項目的服務(wù)器發(fā)送請求
15、,要求它接受被附在請求后的實(shí)體,并且把它當(dāng)作請求隊列中請URL所指定資源的附加新子項。調(diào)用HttpCIient中的HttpPost方法與HttpGet方法類似,除了設(shè)置HttpPost的實(shí)例與HttpGet有些不同之外,剩下步驟相同。1 創(chuàng)建 HttpCIient的實(shí)例。HttpClie nt httpClie nt = new HttpClie nt();2、 創(chuàng)建POST連接方法的實(shí)例,在這里使用HttpPost方法。在HttpPost的構(gòu)造函數(shù)中傳入待連接的地 址。HttpPost post= new HttpPost(url);3、 給post實(shí)例填充表單的值。例如一個登錄接口,需要i
16、d和passwdNameValuePair data = new NameValuePair("id", "youUserName"), newNameValuePair("passwd","yourPwd") ;4、 調(diào)用第一步創(chuàng)建好的實(shí)例的execute方法來執(zhí)行第二步中創(chuàng)建好的method實(shí)例。HttpResp onse httpResp onse = httpClie nt.execute(post);5、讀取response。從返回的response中獲取狀態(tài)碼、響應(yīng)正文等信息。6、釋放連接。clie n
17、t.getC onn ectio nMan ager().shutdow n();7、對得到后的內(nèi)容進(jìn)行處理。Soap方法使用soap協(xié)議的請求信息是使用xml文件傳入的,使用HttpCIient對這種形式請求的處理方式與post方法類似,只是在處理請求信息的時候,可以采用通過 xml文件的路徑以讀文件流的方式將文件的內(nèi)容整 體作為post的表單值傳入,其他步驟不變。功能深入對接口的測試中,我們也需要考慮接口的性能是否符合預(yù)期標(biāo)準(zhǔn),簡單的同步單一請求并不能滿足測試需要,所以在此我們需要引入HttpCIient異步并發(fā)請求方式。我們可以使用 apache HttpAsynClient 4.X編寫
18、的開源lib庫,完成異步并發(fā)測試。IV. 框架分層1、簡介httpDemo框架基于HttpCIient開源項目開發(fā),使用 Maven工具進(jìn)行工程管理,采用 TestNG 工具組織測試,應(yīng)用 CSV文件存儲測試數(shù)據(jù),實(shí)現(xiàn)測試數(shù)據(jù)與測試用例的分離,方便測試數(shù)據(jù)管理,降低 自動化腳本的維護(hù)成本,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動。2、Maven 管理本框架所建項目是一個 Maven工程項目,通過Maven管理項目所依賴的jar包,便于jar包的維護(hù)及編 譯打包。3、TestNG 工具本框架使用TestNG工具組織運(yùn)行test case。相對于Junit而言,TestNG的靈活的參數(shù)化配置,執(zhí)行順 序組織,以及測試套件粒度
19、的自定義劃分,可更靈活的組織自動化代碼。4、Data Driven參數(shù)化是自動化測試框架設(shè)計的關(guān)鍵。本框架采用modules和demo的分層設(shè)計,使用csv文件存儲測試數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)驅(qū)動。5、日志收集自動化執(zhí)行過程的日志信息,對于失敗用例的分析定位以及全過程的跟蹤記錄是十分重要的。相對于簡單的輸出打印,本框架集成了主流的日志收集工具Iog4j,通過配置Iperties文件,定義日志級別內(nèi)容及日志輸出路徑收集日志信息。1.工程結(jié)構(gòu)d httpDemo_2014,6.11丿 嚴(yán) src/main/j ava由 com.sugon.qa.iTestbase com.sugon.qaJ
20、Testcommon:虧 com.sugoriHqajTestmadules,9 com.sugon.qaniTestrequest;*j com.sugon.qa.iTest.support.*j com.sugon.qa.iTeet.teEtData:Q ccm.sugcn.qaJTesttestDemo com.sugonaJTest4aoI.csvTojava l? sri/test/java- JRE System Library . 2SE-1.習(xí)昌“ Maven Dependencies Referenced Libraries 鼻 b libO? httpasyncdient
21、httpcIient.S jsona , h el perjar昌 mysql-connect0rjavs-5X24-binjar 鼻 D resources& configs臼 csvDatasL3 logsG? sqlData> & xmlDatas> & src乙 target占 test-outputlMj pom.xmlbase Package基類,定義接口測試中必須要執(zhí)行的操作:執(zhí)行認(rèn)證授權(quán)請求、清理環(huán)境和釋放common Package公共類,可根據(jù)不同產(chǎn)品的業(yè)務(wù)特點(diǎn)設(shè)計公共通用的業(yè)務(wù)處理方法。request PackageHttpClient
22、Driver 初始化 HttpClient 對象。RequestDriver 類定義了對請求方式、響應(yīng)信息、設(shè)定 cookie 等的處理方法。 support Package 對接口自動化起輔助作用的方法的實(shí)現(xiàn), 如使用異步并發(fā)方式完成壓力測試的 數(shù)據(jù)庫的 JdbcExecutor 類等。modules Package存放由 .csv 文件自動生成的同名實(shí)體類。testDemo Package存放由 .csv 文件生成的具體的測試 demo 。tools Package框架中用到的一些工具類。testData Package做壓力測試或使用其他功能時可能會用到的數(shù)據(jù),為了便于管理,單獨(dú)存放到一
23、個httpClient 連接AsyClient 類、操作package 中。lib存放項目工程外部依賴的jar文件、dll文件等。con figs存放配置文件,如:CONFIG.properties 、Iperties 、testng.xml 。logs存放生成的日志文件。csvDatas存放頁面數(shù)據(jù)文件 csv文件。sqlDatas存放測試用到了清理數(shù)據(jù)庫的.sql文件。xmlDatas存放請求數(shù)據(jù)xml文件。2.數(shù)據(jù)文件解析CSV文件CSV文件的文件名表示具體的模塊名,系統(tǒng)的每個模塊對應(yīng)一個CSV文件。CSV 文件的默認(rèn)為:featureName|name|typeAndU
24、rl|requireData|expectResponse:模塊名稱、接口名稱、請求類型及action、請求信息(如果是 soap請求,該字段為null,數(shù)據(jù)從xml文件中讀?。⑵谕祷財?shù)據(jù),并用" |”做分割。requireData中要寫成一個標(biāo)示符對應(yīng)一個數(shù)據(jù)的形式,中間要以” <n> ”作為分割,若存在多條數(shù)據(jù),每條數(shù)據(jù)建使用”<d> ”作為分隔。例如:要對登錄接口進(jìn)行測試,那CSV文件中的數(shù)據(jù)組織成以下形式1 | 叮mu亡 hyp匕AnTUr | requireDat a I eipcGtResT'onse2 aceountEmai 1 Po
25、Et<n>/l 口聒i n/laEitiAuth. act i an | strPass»Qrd<n>l 11111 <d>s trLTserNam!=-<n>suQp-era-±ni n<cL>st rUserTypc<n>fridvi eor I "e-rrPlsg ":密碼不正帀角XML文件Soap使用基于XML的數(shù)據(jù)結(jié)構(gòu)和超文本傳輸協(xié)議(HTTP)的組合定義了一個標(biāo)準(zhǔn)的方法來使用In ternet上各種不同的操作環(huán)境中的分布式對象。在工程中將so ap請求信息呀xml文件的形
26、式存放,在執(zhí)行用例時,如果碰到請求是 Soap關(guān)鍵字時,系統(tǒng)就自動會到 xmlDatas文件夾下找到指 定文件,xmlDatas 文件夾下的命名方式為: xmlDatas/featureName/name.xml。JAVA文件對于CSV文件,需要將它生成相應(yīng)的Java文件,通過這個中間橋梁,才能識別所存儲的數(shù)據(jù)。將生成的 Java文件導(dǎo)入至modules Package 中。SQL文件在測試過程中,我們往往需要準(zhǔn)備一些數(shù)據(jù),便于后期使用。例如,如果查詢一個用戶就必須保證該用戶已經(jīng)在數(shù)據(jù)庫中存在,所以我們提前需要向數(shù)據(jù)庫中手動插入這樣一條信息,sqlDatas文件夾下的sql文件就起到了這樣的作
27、用,sql文件中存放的是直接操作數(shù)據(jù)庫的sql語句。sqlDatas文件夾下的命名方式為:sqlDatas/featureName/name/xxx.sql ,在測試之前首先遍歷該文件夾,看某個模塊下的action是否含有.sql文件,如果有,就執(zhí)行初始化或者清理數(shù)據(jù)庫的操作,否 則就跳過此步。3. 配置文件CONFIG存儲在resourcesconfig中的CONFIG.properties文件是框架的配置文件。URL :要請求的服務(wù)器主機(jī)地址及端口號。Domain :表示cookie所在的域,默認(rèn)為請求的地址。Path :表示cookie所在的目錄,默認(rèn)為根目錄 /。JSESSION_NA
28、ME : cookie 的JSESSIONID,每次登陸只要不重新登陸該值不會改變。ExpectStatusCode :期望返回響應(yīng)的狀態(tài)碼。Mave n Pom通過配置POM.XML 文件,以達(dá)到項目管理目的。< artifactId > test ng </ artifactId >< name > httpDemo </ name >該標(biāo)簽定義的是項目導(dǎo)入到 Eclipse 后的名稱。< suiteXmlFile > resources/config/TestNG.xml </ suiteXmlFile >由于框架用
29、 TestNG 管理,所以需要配置 TestNG 的 XML 文件,該標(biāo)簽定義的是 TestNG 的 XML 文件的路徑。Testng.xml由于框架用 TestNG 組織 TestCase 運(yùn)行, 所以需要配置 TestNG 的 XML 文件, 打開對應(yīng)的 XML 文件,配置如下內(nèi)容:<?xml version="1.0" encoding="UTF-8"?><suite name="Suite" parallel="false"><test name="Test"
30、;><classes><class name="com.sugon.qa.iTest.testDemo"/></classes></test></suite>其中的 class 標(biāo)簽中的 name 屬性為需要被執(zhí)行的 Java 文件, 如上述舉例即為, 需要運(yùn)行在 iTest 文件夾下的 testDemo 類下的所有含有 Demo 的方法,如果需要配置多條要被執(zhí)行的 Java 文件, 也請同樣在 class 后面聲明。4. 用例的執(zhí)行邏輯第一步:生成 modules 和 demo 文件。正常情況下,測試用例(
31、 demo 文件)是需要測試人員手動輸入的,然而當(dāng)接口較多,這個工作就顯 得比較復(fù)雜且容易出錯,為了避免上述問題,在框架中我們使用工具類實(shí)現(xiàn)由CSV文件自動生成測試用例和modules文件的功能,在運(yùn)行測試用例之前,測試人員需要運(yùn)行csvTojava Package中的modules文件和demo用例分別生成到兩個文件夾中(每一個csv文件對應(yīng)一個 modules實(shí)體類和一個測試 demo )。第二步:運(yùn)行測試用例。testDemo Package文件夾中的測試用例生成無誤后,就可以運(yùn)行測試用例,運(yùn)行方法可以是單獨(dú)運(yùn)行某個測試用例或者直接運(yùn)行httpDemo這個工程,運(yùn)行所有測試用例。下面是由csv文件生成的一條測試用例代碼:package com.sugon.qa.iTest.testDemo;import org.apache .lo g4j.Logger;import org.testng.annotations.BeforeMethod;impo
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版五年級下學(xué)期語文期中復(fù)習(xí)重點(diǎn)知識練習(xí)題
- 藥房2025年個人年度工作計劃
- 電信通訊冬季安全生產(chǎn)培訓(xùn)
- 銷售協(xié)議格式樣式
- 機(jī)械技師年終工作總結(jié)2
- 部編人教版一年級下學(xué)期數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測復(fù)習(xí)綜合練習(xí)題
- 電器企業(yè)冬季安全事故應(yīng)急預(yù)案
- 二零二五年度房屋買賣合同解除與賠償糾紛起訴狀
- 二零二五年度企業(yè)員工年合同期滿辭退補(bǔ)償金結(jié)算協(xié)議
- 2025年度跆拳道運(yùn)動員轉(zhuǎn)會與經(jīng)紀(jì)服務(wù)合同
- 軟件系統(tǒng)運(yùn)行維護(hù)流程及的方案
- 2024年度服務(wù)器采購合同3篇
- 2024解析:第十五章電流和電路-講核心(解析版)
- 2024專用意定監(jiān)護(hù)協(xié)議模板及條款明細(xì)版
- 米勒黑曼策略銷售培訓(xùn)
- 2025高考語文復(fù)習(xí)之60篇古詩文原文+翻譯+賞析+情景默寫
- 2020-2024年五年高考語文真題分類匯編專題04 古代詩歌鑒賞(解析版)
- 女神節(jié)花藝沙龍活動
- 大劇院音視頻系統(tǒng)工程調(diào)試方案
- 社區(qū)商業(yè)招商與運(yùn)營管理方案
- 人教PEP版(2024)三年級上冊英語Unit 6《Useful numbers》單元作業(yè)設(shè)計
評論
0/150
提交評論