基于web的自動(dòng)化測(cè)試框架_第1頁
基于web的自動(dòng)化測(cè)試框架_第2頁
基于web的自動(dòng)化測(cè)試框架_第3頁
基于web的自動(dòng)化測(cè)試框架_第4頁
基于web的自動(dòng)化測(cè)試框架_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Web的自動(dòng)化測(cè)試框架的設(shè)計(jì)與實(shí)現(xiàn)自動(dòng)化測(cè)試框架ASeleinum和JMeterB新框架結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)C實(shí)驗(yàn)結(jié)果和總結(jié)DContent

軟件測(cè)試是保障和提高軟件質(zhì)量的重要手段。軟件開發(fā)者和使用者必須對(duì)軟件進(jìn)行充分的測(cè)試,以確保其正常工作。統(tǒng)計(jì)表明,在典型的軟件開發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開發(fā)總工作量的40%以上。因此提高軟件測(cè)試過程的效率至關(guān)重要。

為了提高測(cè)試效率,越來越多的測(cè)試工作引入了自動(dòng)化測(cè)試的思想和方法。實(shí)踐證明,軟件自動(dòng)化測(cè)試技術(shù)提高了軟件測(cè)試的速度和效率,節(jié)省了軟件測(cè)試成本,縮短了產(chǎn)品發(fā)布周期。同時(shí),自動(dòng)化測(cè)試技術(shù)也完成了許多手工測(cè)試無法實(shí)現(xiàn)的工作。所以,采用自動(dòng)化測(cè)試方法和相應(yīng)的測(cè)試框架成為了軟件開發(fā)組織測(cè)試工作的重要支撐手段。例如,采用自動(dòng)化測(cè)試工具能在測(cè)試活動(dòng)中減少一部分開銷,同時(shí),有些測(cè)試活動(dòng)是靠手工方式難以實(shí)現(xiàn)和度量的;自動(dòng)化測(cè)試框架能夠提高測(cè)試效率,快速定位測(cè)試軟件各版本中的功能、性能缺陷。軟件質(zhì)量的保證——測(cè)試項(xiàng)目進(jìn)度難以控制,項(xiàng)目管理難度加大1對(duì)項(xiàng)目風(fēng)險(xiǎn)的控制能力較弱,項(xiàng)目風(fēng)險(xiǎn)在項(xiàng)目開發(fā)較晚的時(shí)候才能夠真正降低2軟件項(xiàng)目開發(fā)費(fèi)用超過預(yù)算3TraditionalSoftwareTest傳統(tǒng)的軟件測(cè)試流程:一般是在軟件開發(fā)過程中進(jìn)行少量的單元測(cè)試。然后在整個(gè)軟件開發(fā)結(jié)束階段,集中進(jìn)行大量的測(cè)試,包括功能和性能的集成測(cè)試和系統(tǒng)測(cè)試。隨著軟件開發(fā)的越來越復(fù)雜,傳統(tǒng)的軟件測(cè)試流程不可避免的給我們帶來以下問題:1手工測(cè)試2自動(dòng)化測(cè)試通過對(duì)需求規(guī)格的理解來設(shè)計(jì)測(cè)試用例,在測(cè)試用例通過評(píng)審之后,由測(cè)試人員根據(jù)測(cè)試用例中描述的規(guī)程一步步編寫相應(yīng)的測(cè)試代碼并執(zhí)行,記錄程序執(zhí)行后的結(jié)果并提交測(cè)試報(bào)告,最后將實(shí)際結(jié)果與期望結(jié)果進(jìn)行比較。自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。自動(dòng)化軟件測(cè)試就是在預(yù)設(shè)條件下對(duì)已有的測(cè)試用例集進(jìn)行自動(dòng)測(cè)試,生成測(cè)試結(jié)果后自動(dòng)對(duì)結(jié)果進(jìn)行評(píng)估并產(chǎn)生測(cè)試報(bào)告。(預(yù)先條件應(yīng)包括正常條件和異常條件)3自動(dòng)化測(cè)試用例為了進(jìn)一步節(jié)省測(cè)試中人力、時(shí)間或硬件資源,提高測(cè)試效率,便提出了自動(dòng)化生成測(cè)試用例的概念。自動(dòng)化測(cè)試用例是根據(jù)指定的需求表達(dá)規(guī)范或模型來自動(dòng)生成測(cè)試中所需的測(cè)試用例。這些規(guī)范或模型通常表現(xiàn)為UML圖或是通用格式文檔(XML、HTML)等。Overview

自動(dòng)化測(cè)試框架,即是應(yīng)用于自動(dòng)化測(cè)試所用的框架。按照框架的定義,自動(dòng)化測(cè)試框架要么是提供可重用的基礎(chǔ)自動(dòng)化測(cè)試模塊,如:selenium、watir等,它們主要提供最基礎(chǔ)的自動(dòng)化測(cè)試功能,比如打開一個(gè)程序,模擬鼠標(biāo)和鍵盤來點(diǎn)擊或操作被測(cè)試對(duì)象,最后驗(yàn)證被測(cè)對(duì)象的屬性以判斷程序的正確性;要么是可以提供自動(dòng)化測(cè)試執(zhí)行和管理功能的架構(gòu)模塊,它們本身不提供基礎(chǔ)的自動(dòng)化測(cè)試支持,只是用于組織、管理和執(zhí)行那些獨(dú)立的自動(dòng)化測(cè)試用例,測(cè)試完成后統(tǒng)計(jì)測(cè)試結(jié)果,通常這類框架一般都會(huì)集成一個(gè)基礎(chǔ)自動(dòng)化測(cè)試模塊。自動(dòng)化測(cè)試框架可以減少測(cè)試腳本實(shí)現(xiàn)和維護(hù)的成本,使測(cè)試人員把精力集中在測(cè)試用例的設(shè)計(jì)上。1自動(dòng)化測(cè)試框架的定義Overview1)測(cè)試框架與被測(cè)應(yīng)用程序獨(dú)立雖然測(cè)試的應(yīng)用程序不一樣,但被測(cè)應(yīng)用程序之間卻會(huì)有相同的地方,測(cè)試框架應(yīng)聚焦在不同測(cè)試應(yīng)用程序中共同的部分,把與具體應(yīng)用程序有關(guān)的部分從框架中移除。2)測(cè)試框架應(yīng)易于擴(kuò)展、維護(hù)測(cè)試框架應(yīng)被高度模塊化,這樣可以提高框架的維護(hù)性。各個(gè)模塊之間相互獨(dú)立,對(duì)模塊內(nèi)部的修改不應(yīng)該影響其他模塊。3)測(cè)試腳本所使用的測(cè)試語言應(yīng)該是與框架獨(dú)立的不同的測(cè)試框架可能在不同的應(yīng)用領(lǐng)域有不同的表現(xiàn),當(dāng)需要從一個(gè)測(cè)試框架遷移到另外一個(gè)測(cè)試框架時(shí),要保證不需重寫已有的測(cè)試腳本。4)測(cè)試框架不應(yīng)該讓框架的復(fù)雜性影響到測(cè)試人員對(duì)于一般的測(cè)試人員來說,測(cè)試框架的使用要簡(jiǎn)單、測(cè)試語言要易于理解,這樣可以使他們專注于業(yè)務(wù)相關(guān)內(nèi)容的編寫。2自動(dòng)化測(cè)試框架的特點(diǎn)Overviewa)數(shù)據(jù)驅(qū)動(dòng)測(cè)試框架(TheData-DrivenTestingFramework)將測(cè)試數(shù)據(jù)與測(cè)試腳本分離,數(shù)據(jù)驅(qū)動(dòng)最適合測(cè)試的業(yè)務(wù)邏輯固定不變的應(yīng)用程序,只有測(cè)試數(shù)據(jù)會(huì)變化。數(shù)據(jù)驅(qū)動(dòng)提高了測(cè)試邏輯的使用效率和可維護(hù)性。b)測(cè)試腳本模塊化框架(TheTestScriptModularityFramework)模塊驅(qū)動(dòng)測(cè)試使用獨(dú)立的小腳本來對(duì)應(yīng)待測(cè)試的模塊、零件和子功能。這些不同層級(jí)的小腳本按照一定規(guī)則組合成更大級(jí)別的測(cè)試,就能實(shí)現(xiàn)一個(gè)特定功能的測(cè)試用例。模塊驅(qū)動(dòng)測(cè)試引入了抽象和封裝的原則,目的是提升自動(dòng)化測(cè)試的可維護(hù)性和可擴(kuò)展性。3自動(dòng)化測(cè)試框架的類型Overviewc)測(cè)試庫構(gòu)架框架(TheTestLibraryArchitectureFramework)就是模塊化思想的升華,其為應(yīng)用程序的測(cè)試創(chuàng)造了庫文件(可以是APIs、DLLs等),這些庫文件為一系列函數(shù)的集合。其與模塊化思想不同的是,其拓展了接口思想,即可以通過接口去傳遞參數(shù),可以說是一個(gè)帶有接口的交互型模塊。d)關(guān)鍵字驅(qū)動(dòng)測(cè)試框架(TheKeyword-DrivenTestingFramework)關(guān)鍵字驅(qū)動(dòng)(表驅(qū)動(dòng))是對(duì)數(shù)據(jù)驅(qū)動(dòng)的邏輯擴(kuò)展,它提供了一系列數(shù)據(jù)表和關(guān)鍵字,這些數(shù)據(jù)表和關(guān)鍵字獨(dú)立于執(zhí)行它們的測(cè)試自動(dòng)化工具并可以用來驅(qū)動(dòng)待測(cè)應(yīng)用程序和數(shù)據(jù)的測(cè)試腳本代碼。從關(guān)鍵字驅(qū)動(dòng)的思想可以看出,該種測(cè)試框架不僅實(shí)現(xiàn)了將數(shù)據(jù)和腳本相分離,而且實(shí)現(xiàn)了數(shù)據(jù)和測(cè)試邏輯的分離,大大提高了腳本的復(fù)用度和維護(hù)性,從而更大限度地實(shí)現(xiàn)了測(cè)試工具的自動(dòng)化。3自動(dòng)化測(cè)試框架的類型Web自動(dòng)化測(cè)試框架

分布式計(jì)算將網(wǎng)絡(luò)服務(wù)帶到世界的每一個(gè)角落,這些服務(wù)又大都部署在web應(yīng)用系統(tǒng)中。如何保障高質(zhì)量的web服務(wù)是個(gè)非常重要的問題。對(duì)于一個(gè)復(fù)雜的web應(yīng)用系統(tǒng)需要測(cè)試的方面太多了,特別是那些開發(fā)周期很長(zhǎng)的系統(tǒng),如果只依賴于手工來完成測(cè)試,顯然測(cè)試成本將非常高且易出錯(cuò),通過使用自動(dòng)化測(cè)試工具,能夠極大的降低web系統(tǒng)維護(hù)的成本。但是存在一個(gè)問題:如何才能提高測(cè)試腳本的可復(fù)用性和移植性?GrinderOpenSTASiegeJMeterPylotWatirSeleniumCommonTestAutomationFrameworkOnWebSelenium是一個(gè)開源的和便攜式的自動(dòng)化軟件測(cè)試工具,用于測(cè)試Web應(yīng)用程序有能力在不同的瀏覽器和操作系統(tǒng)運(yùn)行。Selenium真的不是一個(gè)單一的工具,而是一套工具,幫助測(cè)試者更有效地基于Web的應(yīng)用程序的自動(dòng)化。SeleniumApacheJMeter是Apache組織開發(fā)的基于Java的壓力測(cè)試工具。用于對(duì)軟件做壓力測(cè)試,它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,但后來擴(kuò)展到其他測(cè)試領(lǐng)域。JMeter可以用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,測(cè)試來自不同壓力類別下它們的強(qiáng)度和分析整體性能。JMeterSelenium&JMeter1)測(cè)試瀏覽器的兼容性:測(cè)試應(yīng)用程序能否兼容工作在不同瀏覽器和操作系統(tǒng)之上。2)測(cè)試系統(tǒng)功能:錄制用例自動(dòng)生成測(cè)試腳本,用于回歸功能測(cè)試或者系統(tǒng)用例說明。FunctionTheDetialsofSeleniumVersionSelenium引入了RemoteControlServer這樣一個(gè)代理Server,JavaScript腳本注入和與Server通訊都通過這個(gè)代理Server來進(jìn)行。之所以引入這個(gè)代理RemoteControlServer是因?yàn)椤巴床呗浴钡南拗?,通過這個(gè)代理服務(wù)器來“欺騙”遠(yuǎn)程Server,達(dá)到使其以為是從同一個(gè)地方load代碼以正確返回請(qǐng)求數(shù)據(jù)的效果。流程說明:1.客戶端建立與selenium-RCserver的連接。2.SeleniumRCServer啟動(dòng)一個(gè)瀏覽器,并注入JS代碼3.將Selenese代碼傳到客戶端的Selenium-Core中。4.Selenium-Core翻譯并解析執(zhí)行用戶錄制的操作。5.讓代理Server進(jìn)行通訊6.RemoteControlServer負(fù)責(zé)跟遠(yuǎn)程Web應(yīng)用服務(wù)器進(jìn)行通訊。7.操作完成,顯示結(jié)果,并執(zhí)行下一指令。ImplementTheoryTheTheoryofSelenium可以看見測(cè)試人員的工作如紫色箭頭所示,而自動(dòng)化工作如藍(lán)色箭頭所示。它能自動(dòng)識(shí)別測(cè)試用例,并讀取配置文件以測(cè)試套件運(yùn)行不同的測(cè)試用例。它還可以被合并到項(xiàng)目持續(xù)集成軟件中,定期地持續(xù)進(jìn)行基于Web的功能性測(cè)試,并將報(bào)告以郵件形式通知管理人員。具體說明如下:1.由測(cè)試人員錄制腳本并導(dǎo)出JUnit。2.測(cè)試人員修改配置文件,將測(cè)試用例包含在測(cè)試套件中。3.合并在持續(xù)集成軟件后,框架會(huì)定期檢測(cè)配置的測(cè)試套件4.逐個(gè)加載測(cè)試用例。5.以測(cè)試套件為單位其執(zhí)行所有測(cè)試用例。6.執(zhí)行完成后將測(cè)試套件的結(jié)果報(bào)告以郵件形式通知管理人員EffectsTheWorkProcess

JMeter使用了不同技術(shù)和協(xié)議,是一款可以進(jìn)行配置和執(zhí)行負(fù)載測(cè)試、性能測(cè)試和壓力測(cè)試的工具。它能夠模擬不同類型的請(qǐng)求、訪問各種類型的數(shù)據(jù)庫、采用不同的協(xié)議,如FTP,HTTP,HTTPS,LDAP等?!褙?fù)載測(cè)試:這類測(cè)試使系統(tǒng)或者應(yīng)用程序在預(yù)先設(shè)計(jì)好的極端場(chǎng)景下測(cè)試運(yùn)行。這類測(cè)試用來評(píng)估系統(tǒng)或者程序在極端條件下的行為。

●性能測(cè)試:這種測(cè)試被用來檢測(cè)系統(tǒng)的性能表現(xiàn),包括特定情況下,系統(tǒng)的響應(yīng)能力和穩(wěn)定性。

●壓力測(cè)試:這類測(cè)試通過載入更多的外部資源,并使系統(tǒng)組件超越其所設(shè)定的能力范圍,試圖使系統(tǒng)掛掉。IntroductionTheDetialsofJMeterTestingType

JMeter是一款Java桌面應(yīng)用程序,它的用戶界面采用SwingJavaAPI實(shí)現(xiàn)?;谶@兩點(diǎn),JMeter是一個(gè)跨平臺(tái)工具,能夠運(yùn)行在任何安裝了Java虛擬機(jī)的操作系統(tǒng)(Windows,Linux,Mac)的設(shè)備上。它的框架支持并發(fā)和多線程或者線程組的執(zhí)行。這對(duì)于配置負(fù)載測(cè)試和壓力測(cè)試非常有用。它是可擴(kuò)展的,提供了大量的可用插件。

1線程組3定時(shí)器5監(jiān)聽器2采樣器4邏輯控制器6斷言代表一定數(shù)量的并發(fā)用戶,它可以用來模擬并發(fā)用戶發(fā)送請(qǐng)求。負(fù)責(zé)定義請(qǐng)求(線程)之間的延遲間隔,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求。負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式。模擬發(fā)送請(qǐng)求到不同類型的服務(wù)器。它們是每一個(gè)測(cè)試計(jì)劃的基本要素,一切都圍繞這些采樣器而工作。邏輯控制器允許你配置一個(gè)線程組內(nèi)不同采樣器的執(zhí)行順序。用于來判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望,是否正確。ComponentSimpleDemo場(chǎng)景描述:自己建立一個(gè)服務(wù)器端,接受參數(shù):name和age,并將這些數(shù)據(jù)保存到數(shù)據(jù)庫中;http://localhost:8080/Server/SaveUserServlet?name=xxx&age=xxx我們通過JMeter對(duì)其進(jìn)行壓力測(cè)試;目標(biāo):開1000個(gè)線程,每個(gè)線程循環(huán)1次,全部操作在3秒內(nèi)完成;圖形操作:

基于Selenium和JMeter的框架設(shè)計(jì)TheFeatureofnewSkeleton

基于web的自動(dòng)化測(cè)試框架常常會(huì)提供優(yōu)秀的接口,能夠方便地調(diào)用它們?cè)趙eb應(yīng)用上作模塊測(cè)試,性能測(cè)試,和負(fù)載測(cè)試等。

由于Selenium和JMeter運(yùn)行在不同的層次上,Selenium工作在用戶層上,而JMeter工作在協(xié)議層上。為了便于在兩種測(cè)試框架之間運(yùn)行不同的測(cè)試以及分配測(cè)試程序和測(cè)試數(shù)據(jù),這篇文章提出了一個(gè)綜合了Selenium和JMeter的自動(dòng)化測(cè)試框架。通過實(shí)現(xiàn)這個(gè)新的自動(dòng)化測(cè)試框架,能夠靈活地對(duì)web應(yīng)用做各種類型的測(cè)試,并且測(cè)試的重用性,可擴(kuò)展性,綜合性和精確性都有很好的表現(xiàn)。使用這個(gè)框架,能夠有效的提高自動(dòng)化測(cè)試的擴(kuò)張性和可重用性,結(jié)果顯示新的框架能提高軟件生產(chǎn)的質(zhì)量并提高效率。TheDesignandImplement

采用Selenium測(cè)試工具的測(cè)試自動(dòng)化框架用來解決web應(yīng)用在瀏覽器上的兼容性;JMeter被引用是為了提供測(cè)試者一個(gè)工具去模擬瀏覽器發(fā)送不同請(qǐng)求方法給web應(yīng)用服務(wù)器。使用這個(gè)新的測(cè)試自動(dòng)化框架,測(cè)試者可以配置測(cè)試類型,通過修改測(cè)試配型轉(zhuǎn)換各種不同的測(cè)試,而不需要改變相關(guān)的測(cè)試用例單元。Fig1.Thearchitectureoftestframework模型Model1轉(zhuǎn)換器Translator2執(zhí)行器Actionworker3比較器Comparator4結(jié)果收集器Test-resultCollector5TheDesignandImplementa.集成自動(dòng)化測(cè)試框架的組成結(jié)構(gòu)1模型(Model)模型指的是包含來自于XML的對(duì)象模型(實(shí)體)。如動(dòng)作(Action),斷言(Assertion),元素(Element),應(yīng)用數(shù)據(jù)(ApplicationData),用例(Cases),工具設(shè)置(ToolsSetting)。TheDesignandImplement2轉(zhuǎn)換器(Translator)

轉(zhuǎn)換器用來將測(cè)試者準(zhǔn)備好的測(cè)試用例轉(zhuǎn)換到一個(gè)能夠被特定測(cè)試工具識(shí)別的測(cè)試用例工具。整個(gè)過程分為兩步:第一步將測(cè)試用例歸納到與不同測(cè)試類型相關(guān)的動(dòng)作集,比如前端(UI),后端(backend),負(fù)載測(cè)試(loadingtest);第二步將每一個(gè)動(dòng)作集歸納到特定的命令或腳本工具,這些命令或腳本工具依賴于所采用的實(shí)際的測(cè)試工具。轉(zhuǎn)換層步驟流程如下:1)通過TranslatorName()函數(shù)獲得一個(gè)特定測(cè)試類型的轉(zhuǎn)換器名。2)通過特定轉(zhuǎn)化器getTranslatorInstance()和translate()函數(shù)將測(cè)試用例轉(zhuǎn)

換到測(cè)試用例域。3)通過getToolTranslatorName()函數(shù)獲得特定測(cè)試類型的的轉(zhuǎn)換器名。4)通過轉(zhuǎn)換器getToolTranslatorInstance()和translate()函數(shù)從測(cè)試用例域獲取測(cè)試用例工具。TheDesignandImplement3執(zhí)行器(Actionworker)TheDesignandImplement

執(zhí)行器(ActionWorker)的功能是調(diào)用相應(yīng)的工具執(zhí)行相關(guān)的動(dòng)作。執(zhí)行器層步驟流程如下:1)通過getActionWorkerName()函數(shù)獲得一個(gè)執(zhí)行器(actionworker)2)通過getActionWorkerInstance()獲得執(zhí)行器實(shí)例(actionworkerinstance)3)最后一步通過doAction()執(zhí)行。4比較器(Comparator)TheDesignandImplement這部分能夠確定測(cè)試用例是否成功。這部分手機(jī)測(cè)試結(jié)果和預(yù)期結(jié)果。然后對(duì)這兩種結(jié)果作比較。主要步驟如下:1)通過getTestResultCollectorName()和個(gè)體TestResultCollectorInstance()實(shí)例化一個(gè)測(cè)試結(jié)果收集器collectTestResult().2)通過collectExpectedResult()收集運(yùn)行測(cè)試實(shí)例時(shí)的預(yù)期結(jié)果。3)通過getComparatorName()和getComparatorInstance()實(shí)例化一個(gè)比較器實(shí)例。4)通過compare()函數(shù)對(duì)測(cè)試結(jié)果和預(yù)期結(jié)果作比較并得到比較結(jié)果。WholeProcedure1)通過使用xmlObjectConvertor()將測(cè)試用例轉(zhuǎn)換到測(cè)試用例(TestCase)實(shí)體,將測(cè)試用例的測(cè)試步驟轉(zhuǎn)換到測(cè)試用例動(dòng)作(TestCaseAction)實(shí)體,將測(cè)試用例中的斷言轉(zhuǎn)換到斷言(Assertion)實(shí)體,將應(yīng)用背景XML轉(zhuǎn)換到應(yīng)用數(shù)據(jù)(ApplicationData)實(shí)體。2)聯(lián)合應(yīng)用數(shù)據(jù)和測(cè)試用例。3)通過使用translate()函數(shù)將用例(TestCase)轉(zhuǎn)換到TestToolCase.4)使用doAction()函數(shù)為指定的測(cè)試工具調(diào)用特定的執(zhí)行器執(zhí)行TestToolAction.5)通過collectTestResult()函數(shù)為指定的測(cè)試工具收集測(cè)試結(jié)果。并且通過collectExpectedResult()收集預(yù)期測(cè)試結(jié)果,然后通過compare()比較

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論