在做自動(dòng)化測(cè)試之前你需要了解的知識(shí)

什么是自動(dòng)化測(cè)?

做測(cè)試好幾年了,真正學(xué)習(xí)和實(shí)踐自動(dòng)化測(cè)試一年,自我感覺這一個(gè)年中收獲許多。一直想動(dòng)筆寫一篇文章分享自動(dòng)化測(cè)試實(shí)踐中的一些經(jīng)驗(yàn)。終于決定花點(diǎn)時(shí)間來做這件事兒。

首先理清自動(dòng)化測(cè)試的概念,廣義上來講,自動(dòng)化包括一切通過工具(程序)的方式來代替或輔助手工測(cè)試的行為都可以看做自動(dòng)化,包括性能測(cè)試工具(loadrunner、jmeter),或自己所寫的一段程序,用于生成1到100個(gè)測(cè)試數(shù)據(jù)。狹義上來講,通工具記錄或編寫腳本的方式模擬手工測(cè)試的過程,通過回放或運(yùn)行腳本來執(zhí)行測(cè)試用例,從而代替人工對(duì)系統(tǒng)的功能進(jìn)行驗(yàn)證。

當(dāng)然,我們更普遍的認(rèn)識(shí)把“自動(dòng)化測(cè)試”看做“?基于產(chǎn)品或項(xiàng)目UI層的自動(dòng)化測(cè)試”。

分層的自動(dòng)化測(cè)試

這個(gè)概念最近曝光度比較高,傳統(tǒng)的自動(dòng)化測(cè)試更關(guān)注的產(chǎn)品UI層的自動(dòng)化測(cè)試,而分層的自動(dòng)化測(cè)試倡導(dǎo)產(chǎn)品的不同階段(層次)都需要自動(dòng)化測(cè)試。

相信測(cè)試同學(xué)對(duì)上面的金字塔并不陌生,這不就是對(duì)產(chǎn)品開發(fā)不同階段所對(duì)應(yīng)的測(cè)試么!我們需要規(guī)范的來做單元測(cè)試同樣需要相應(yīng)的單元測(cè)試框架,如java的Junit、testNG,C#的NUnit,python的unittest、pytest等,幾乎所有的主流語(yǔ)言,都會(huì)有其對(duì)應(yīng)的單元測(cè)試框架。

集成、接口測(cè)試對(duì)于不少測(cè)試新手來說不太容易理解,單元測(cè)試關(guān)注代碼的實(shí)現(xiàn)邏輯,例如一個(gè)if分支或一個(gè)for循環(huán)的實(shí)現(xiàn);那么集成、接口測(cè)試關(guān)注的一是個(gè)函數(shù)、類(方法)所提供的接口是否可靠。例如,我定義一個(gè)add()函數(shù)用于計(jì)算兩個(gè)參數(shù)的結(jié)果并返回,那么我需要調(diào)用add()并傳參,并比較返回值是否兩個(gè)參數(shù)相加。當(dāng)然,接口測(cè)試也可以是url的形式進(jìn)行傳遞。例如,我們通過get方式向服務(wù)器發(fā)送請(qǐng)求,那么我們發(fā)送的內(nèi)容做為URL的一部分傳遞到服務(wù)器端。但比如Web?service?技術(shù)對(duì)外提供的一個(gè)公共接口,需要通過soapUI?等工具對(duì)其進(jìn)行測(cè)試。

UI層的自動(dòng)化測(cè)試,這個(gè)大家應(yīng)該再熟悉不過了,大部分測(cè)試人員的大部分工作都是對(duì)UI層的功能進(jìn)行測(cè)試。例如,我們不斷重復(fù)的對(duì)一個(gè)表單提交,結(jié)果查詢等功能進(jìn)行測(cè)試,我們可以通過相應(yīng)的自動(dòng)化測(cè)試工具來模擬這些操作,從而解放重復(fù)的勞動(dòng)。UI層的自動(dòng)化測(cè)試工具非常多,比較主流的是QTP,Robot?Framework、watir、selenium等。

為什么要畫成一個(gè)金字塔形,則不是長(zhǎng)方形?或倒三角形呢??這是為了表示不同階段所投入自動(dòng)化測(cè)試的比例。如果一個(gè)產(chǎn)品從沒有做單元測(cè)試與接口測(cè)試,只做UI層的自動(dòng)化測(cè)試是不科學(xué)的,從而很難從本質(zhì)上保證產(chǎn)品的質(zhì)量。如果你妄圖實(shí)現(xiàn)全面的UI層的自動(dòng)化測(cè)試,那更是一個(gè)勞民傷財(cái)?shù)呐e動(dòng),投入了大量人力時(shí)間,最終獲得的收益可能會(huì)遠(yuǎn)遠(yuǎn)低于所支付的成本。因?yàn)樵酵蠈樱渚S護(hù)成本越高。尤其是UI層的元素會(huì)時(shí)常的發(fā)生改變。所以,我們應(yīng)該把更多的自動(dòng)化測(cè)試放在單元測(cè)試與接口測(cè)試階段進(jìn)行。

既然UI層的自動(dòng)化測(cè)試這么勞民傷財(cái),那我們只做單元測(cè)試與接口測(cè)試好了。NO!因?yàn)椴还苁裁礃拥漠a(chǎn)品,最終呈現(xiàn)給用戶的是UI層。所以,測(cè)試人員應(yīng)該更多的精力放在UI層。那么也正是因?yàn)闇y(cè)試人員在UI層投入大量的精力,所以,我們有必要通過自動(dòng)化的方式幫助我們“部分解放”重復(fù)的勞動(dòng)。

在自動(dòng)化測(cè)試中最怕的是變化,因?yàn)樽兓闹苯咏Y(jié)果就是導(dǎo)致測(cè)試用例的運(yùn)行失敗,那么就需要對(duì)自動(dòng)化腳本進(jìn)行維護(hù);如何控制失敗,降低維護(hù)成本對(duì)自化的成敗至關(guān)重要。反過來講,一份永遠(yuǎn)都運(yùn)行成功的自動(dòng)化測(cè)試用例是沒有價(jià)值。

至于在金字塔中三種測(cè)試的比例要根據(jù)實(shí)際的項(xiàng)目需求來劃分。在《google測(cè)試之道》一書,對(duì)于google產(chǎn)品,70%的投入為單元測(cè)試,20%為集成、接口測(cè)試,10%為UI層的自動(dòng)化測(cè)試。

我為什么要做自動(dòng)化測(cè)試?

根據(jù)51testing的《中國(guó)軟件測(cè)試從業(yè)人員調(diào)查報(bào)告》,手工測(cè)試占到的89%?,相對(duì)開發(fā)來說,測(cè)試的門檻底,薪資普遍較底,所要求的知識(shí)面雖然有一定廣度,但缺乏深度。這是測(cè)試的普遍現(xiàn)狀。

正因?yàn)槭止y(cè)試人門檻不高,使大量的畢業(yè)生,甚至是非專業(yè)人員涌入這個(gè)行業(yè)。從而增加了這個(gè)行業(yè)的激烈競(jìng)爭(zhēng)。對(duì)于工作幾年扔處于手工測(cè)試的人員來說都會(huì)有強(qiáng)列的危機(jī)感。由于工作的技術(shù)含量不高,薪資的漲幅遇到瓶頸,另一方面受到新進(jìn)入者的威脅,同樣的工作公司花5K招來的人就可以做,那么就不會(huì)花8K的招。

好吧,這個(gè)問題不應(yīng)該出現(xiàn)討論技術(shù)的話題中,但他的確是大多測(cè)試人員不得不面對(duì)的一個(gè)問題。所以,從測(cè)試人員自身的發(fā)展來說,我其實(shí)非常需要通過自動(dòng)化技術(shù)來增加自己有競(jìng)爭(zhēng)力。當(dāng)然,做到一定年限測(cè)試人員會(huì)選擇轉(zhuǎn)管理或其它崗位,這又是另一個(gè)話題了。

從測(cè)試行業(yè)的發(fā)展來說,國(guó)內(nèi)產(chǎn)品由于產(chǎn)品特點(diǎn),世界級(jí)的產(chǎn)品不多,技術(shù)含量相對(duì)不高,質(zhì)量要求相對(duì)要求不高,外包國(guó)外項(xiàng)目,測(cè)試人力成本低廉,所以需要大量的手工測(cè)試人員。

所以,在不遠(yuǎn)的未來,我認(rèn)為純的工手測(cè)試人員的需求是遞減,公司更需要更高技術(shù)能力的測(cè)試。質(zhì)量需要測(cè)試,測(cè)試行為永遠(yuǎn)不會(huì)消失,但純的手工測(cè)試人員是否消失是有可能的。

好吧,你可以說測(cè)試多朝陽(yáng)的行業(yè),我純屬在危言聳聽。不管未來如何,我們都需要提升自身的技能對(duì)吧!

什么項(xiàng)目適合做自動(dòng)化測(cè)試?

假如你已經(jīng)決定要學(xué)習(xí)自動(dòng)化測(cè)試了,如何學(xué)習(xí)是要面臨的下一個(gè)問題?這個(gè)問題以被測(cè)試產(chǎn)品為出發(fā)點(diǎn)進(jìn)行分析,假如你所學(xué)的技術(shù)不能得到應(yīng)用(驗(yàn)證),將會(huì)使你的學(xué)習(xí)過程寸步難行。

首先考考慮產(chǎn)品是否適合做自動(dòng)化測(cè)試。這方法比較普遍的共識(shí)是從三個(gè)方面進(jìn)行權(quán)衡。

軟件需求變動(dòng)不頻繁

測(cè)試腳本的穩(wěn)定性決定了自動(dòng)化測(cè)試的維護(hù)成本。如果軟件需求變動(dòng)過于頻繁,測(cè)試人員需要根據(jù)變動(dòng)的需求來更新測(cè)試用例以及相關(guān)的測(cè)試腳本,而腳本的維護(hù)本身就是一個(gè)代碼開發(fā)的過程,需要修改、調(diào)試,必要的時(shí)候還要修改自動(dòng)化測(cè)試的框架,如果所花費(fèi)的成本不低于利用其節(jié)省的測(cè)試成本,那么自動(dòng)化測(cè)試便是失敗的。

項(xiàng)目中的某些模塊相對(duì)穩(wěn)定,而某些模塊需求變動(dòng)性很大。我們便可對(duì)相對(duì)穩(wěn)定的模塊進(jìn)行自動(dòng)化測(cè)試,而變動(dòng)較大的仍是用手工測(cè)試。

項(xiàng)目周期較長(zhǎng)

由于自動(dòng)化測(cè)試需求的確定、自動(dòng)化測(cè)試框架的設(shè)計(jì)、測(cè)試腳本的編寫與調(diào)試均需要相當(dāng)長(zhǎng)的時(shí)間來完成。這樣的過程本身就是一個(gè)測(cè)試軟件的開發(fā)過程,需要較長(zhǎng)的時(shí)間來完成。如果項(xiàng)目的周期比較短,沒有足夠的時(shí)間去支持這樣一個(gè)過程,那么自動(dòng)化測(cè)試便成為笑談。

自動(dòng)化測(cè)試腳本可重復(fù)使用

自動(dòng)化測(cè)試腳本的重復(fù)使用要從三個(gè)方面來考量,一方面所測(cè)試的項(xiàng)目之間是否很大的差異性(如C/S系統(tǒng)和B/S系統(tǒng)的差異);所選擇的測(cè)試工具是否適應(yīng)這種差異;最后,測(cè)試人員是否有能力開發(fā)出適應(yīng)這種差異的自動(dòng)化測(cè)試框架。

選擇什么工具進(jìn)行自動(dòng)化測(cè)試

假如你已經(jīng)確認(rèn)了XX項(xiàng)目適合做自動(dòng)化測(cè)試,那么接下來你要做的就是選測(cè)試工具了。

首先要先確認(rèn)你所測(cè)試的產(chǎn)品是桌面程序(C/S)還是web應(yīng)用(B/S)。

桌面程序的工具有:QTP、AutoRunner

web應(yīng)用的工具有:QTP、AutoRunner、Robot?Framework、watir、selenium

由于B/S架構(gòu)的諸多優(yōu)勢(shì),早幾年前大量C/S架構(gòu)的應(yīng)用轉(zhuǎn)為B/S結(jié)構(gòu)。從而也推動(dòng)了web開發(fā)與測(cè)試技術(shù)的發(fā)展。假如,被測(cè)試有產(chǎn)品是C/S架構(gòu)的,那么推薦QTP,QTP在UI自動(dòng)化測(cè)試領(lǐng)域占到了一半的試用率。所以,足以說明QTP在自動(dòng)化領(lǐng)域強(qiáng)大,易用性等。學(xué)習(xí)主流的工具也可以使你獲得更多的機(jī)會(huì)。市面上關(guān)于QTP的書籍也非常豐富。當(dāng)然,要想學(xué)好QTP,你必須要掌握VBS腳本語(yǔ)言。

如果,被測(cè)產(chǎn)品是B/S結(jié)構(gòu),那么推薦selenium,為什么不是QTP或其它工具?因?yàn)閟elenium對(duì)B/S應(yīng)用支持很好,更重要的一點(diǎn),它支持多語(yǔ)言的開發(fā),真正的試用selenium,你所要掌握的不僅僅是一個(gè)工具而已,你還需要學(xué)習(xí)一門語(yǔ)言。我為什么要選擇selenium?還要學(xué)一門語(yǔ)言,這無疑增加了我的學(xué)習(xí)成本。增加成本的同時(shí),也增加的你的競(jìng)爭(zhēng)力,而且,在這個(gè)過程中你不單單只是學(xué)會(huì)了一個(gè)自動(dòng)化工具而已,你完全可以使用所學(xué)的語(yǔ)言去做更多的事情。

好吧!假如你決定試用selenium了之后,你又面臨了一個(gè)新的問題,選擇一門語(yǔ)言。selenium是支持java、python、ruby、php、C#、JavaScript?。

從語(yǔ)言易學(xué)性來講,首選ruby,python

從語(yǔ)言應(yīng)用廣度來講,首選java、C#、php、

從語(yǔ)言相關(guān)測(cè)試技術(shù)成度(及?資料)來講:ruby?,python?,java

或者你可以考慮整個(gè)技術(shù)團(tuán)隊(duì)主流用什么語(yǔ)言,然后選擇相應(yīng)的語(yǔ)言。

selenium?用前須知

OK!經(jīng)過上的過程,我相信你一定做出的相應(yīng)的選擇,如果你選擇的是selenium?工具,那么接著往下閱讀。

首選你在開始selenium之前,需要花一到兩個(gè)月時(shí)間去學(xué)一門語(yǔ)言,這里是根據(jù)沒有語(yǔ)言基礎(chǔ)的同學(xué)而定的。我推薦ruby?,python?,java?任意一門語(yǔ)言來進(jìn)行學(xué)習(xí)。

當(dāng)然,已經(jīng)如果有很好的語(yǔ)言基礎(chǔ)略過這個(gè)環(huán)節(jié),或者你的豐富的java編程能力,那么學(xué)習(xí)python?可能只需要幾天時(shí)間或更短。

假如,你已經(jīng)搞定了一門語(yǔ)言的基礎(chǔ),接下來你需要先了解selenium?,selenium?并不是單純的一個(gè)工具,他是一組工具的集合,而且,他還有1.0與2.0之分,當(dāng)然3.0也已經(jīng)到來。

selenium?也不是簡(jiǎn)單一個(gè)工具,而是由幾個(gè)工具組成,每個(gè)工具都有其特點(diǎn)和應(yīng)用場(chǎng)景。

selenium?IDE

selenium?IDE?是嵌入到Firefox瀏覽器中的一個(gè)插件,實(shí)現(xiàn)簡(jiǎn)單的瀏覽器操作的錄制與回放功能。那么什么情況下用到它呢?

快速的創(chuàng)建bug重現(xiàn)腳本,在測(cè)試人員的測(cè)試過程中,發(fā)現(xiàn)了bug之后可以通過IDE將重現(xiàn)的步驟錄制下來,以幫助開發(fā)人員更容易的重現(xiàn)bug。

IDE錄制的腳本可以可以轉(zhuǎn)換成多種語(yǔ)言,從而幫助我們快速的開發(fā)腳本,關(guān)于這個(gè)功能后而用到時(shí)再詳細(xì)介紹。

selenium?Grid

Selenium?Grid是一種自動(dòng)化的測(cè)試輔助工具,Grid通過利用現(xiàn)有的計(jì)算機(jī)基礎(chǔ)設(shè)施,能加快Web-app的功能測(cè)試。利用Grid,可以很方便地同時(shí)在多臺(tái)機(jī)器上和異構(gòu)環(huán)境中并行運(yùn)行多個(gè)測(cè)試事例。其特點(diǎn)為:

·?并行執(zhí)行

·?通過一個(gè)主機(jī)統(tǒng)一控制用例在不同環(huán)境、不同瀏覽器下運(yùn)行。

·?靈活添加變動(dòng)測(cè)試機(jī)

selenium?RC

selenium?RC?是selenium?家族的核心工具,selenium?RC?支持多種不同的語(yǔ)言編寫自動(dòng)化測(cè)試腳本,通過selenium?RC?的服務(wù)器作為代理服務(wù)器去訪問應(yīng)用從而達(dá)到測(cè)試的目的。

selenium?RC?使用分Client?Libraries和selenium?Server,Client?Libraries庫(kù)主要主要用于編寫測(cè)試腳本,用來控制selenium?Server的庫(kù)。

Selenium?Server負(fù)責(zé)控制瀏覽器行為,總的來說,Selenium?Server主要包括3個(gè)部分:Launcher、Http?Proxy、Core。其中Selenium?Core是被Selenium?Server嵌入到瀏覽器頁(yè)面中的。其實(shí)Selenium?Core就是一堆JS函數(shù)的集合,就是通過這些JS函數(shù),我們才可以實(shí)現(xiàn)用程序?qū)g覽器進(jìn)行操作。Launcher用于啟動(dòng)瀏覽器,把selnium?Core加載到瀏覽器頁(yè)面當(dāng)中,并把瀏覽器的代理設(shè)置為Selenium?Server?的Http?Proxy。

selenium?2.0

搞清了selenium?1.0?的家族關(guān)系,selenium?2.0?是把WebDriver?加入到了這個(gè)家族中;簡(jiǎn)單用公式表示為:

selenium?2.0?=?selenium?1.0?+?WebDriver

需要強(qiáng)調(diào)的是,在selenium?2.0?中主推的是WebDriver?,WebDriver?是selenium?RC?的替代品,因?yàn)?selenium?為了向下兼容性,所以selenium?RC?并沒有徹底拋棄,如果你使用selenium開發(fā)一個(gè)新自動(dòng)化測(cè)試項(xiàng)目,強(qiáng)列推薦使用WebDriver?。那么selenium?RC?與webdriver?主要有什么區(qū)別呢?

selenium?RC?在瀏覽器中運(yùn)行JavaScript應(yīng)用,使用瀏覽器內(nèi)置的JavaScript?翻譯器來翻譯和執(zhí)行selenese命令(selenese?是selenium命令集合)。

WebDriver通過原生瀏覽器支持或者瀏覽器擴(kuò)展直接控制瀏覽器。WebDriver針對(duì)各個(gè)瀏覽器而開發(fā),取代了嵌入到被測(cè)Web應(yīng)用中的JavaScript。與瀏覽器的緊密集成支持創(chuàng)建更高級(jí)的測(cè)試,避免了JavaScript安全模型導(dǎo)致的限制。除了來自瀏覽器廠商的支持,WebDriver還利用操作系統(tǒng)級(jí)的調(diào)用模擬用戶輸入。

如果是新項(xiàng)目直接學(xué)習(xí)webdriver?就OK了,RC是過時(shí)技術(shù)。

selenium學(xué)習(xí)路線

配置你的測(cè)試環(huán)境,真對(duì)你所學(xué)習(xí)語(yǔ)言,來配置你相應(yīng)的selenium?測(cè)試環(huán)境。selenium?好比定義的語(yǔ)義---“問好”,假如你使用的是中文,為了表術(shù)問好,你的寫法是“你好”,假如你使用的是英語(yǔ),你的寫法是“hello”。?所以,同樣有語(yǔ)義在不同的語(yǔ)言下會(huì)有不同的寫法(語(yǔ)法)。

接著你需要熟悉webdriver?API?,API就是selenium?所定義一方法,用于定位,操作頁(yè)面上的各種元素。

先學(xué)習(xí)元素的定位,selenium?提供了id、name、class?name、?tag?name、link?text、partial?link?text、?xpath、css、等定位方法。xpath和css功能強(qiáng)大語(yǔ)法稍微復(fù)雜,在這其間你可能還需要了解更多的前端知識(shí)。xml?,javascript等。

定位元素的目的是為了操作元素,接就要學(xué)習(xí)各種元素有操作,輸入框,下拉框,按鈕點(diǎn)擊,文件上傳、下載,分頁(yè),對(duì)話框,警告框...等等。

經(jīng)過一段時(shí)間的學(xué)習(xí),你可以游刃有余的模擬手工測(cè)試來操作頁(yè)面上的各種元素了。接著你需要做的就是把這些“用例”組織起來,統(tǒng)一來跑。

那么你需要做的就是學(xué)習(xí)并使用單元測(cè)試框架,單元測(cè)試框架本身就解決了用例的組織與運(yùn)行。

當(dāng)你寫了一些“測(cè)試用例”?之后,你會(huì)發(fā)現(xiàn)用例中有大量重復(fù)的操作,能不能寫到一個(gè)單獨(dú)的文件中,需要的時(shí)候調(diào)用這些操作?當(dāng)然可以,運(yùn)用你的編程能力來實(shí)現(xiàn)這一點(diǎn)將非常簡(jiǎn)單。然后,你又發(fā)現(xiàn)每個(gè)用例中都有一些數(shù)據(jù),這些數(shù)據(jù)也是一樣的,但如果變化了修改起來非常麻煩,你也可以把他寫到一個(gè)單獨(dú)的文件中進(jìn)行讀取。

接著你又遇到了新的疑問,我寫的腳本(用例)都是流水式的,我怎么知道用例運(yùn)行失敗還是成功。那么就需要在腳本中加一些驗(yàn)證與斷言。

接著你又有了更多的想法,單元測(cè)試框架的log太簡(jiǎn)陋了,能不能生成一張漂亮的測(cè)試報(bào)告出來。我能不能定時(shí)的來跑這個(gè)腳本。能不能把每一次跑腳本的測(cè)試結(jié)果直接發(fā)到我的郵箱。能不能......

為解決這些問題,你不得不學(xué)習(xí)更多的編程技術(shù),然后你的“測(cè)試結(jié)構(gòu)”會(huì)功能越來越強(qiáng)大,越來越靈活。產(chǎn)生了一定的通用性和移植性。一個(gè)有模有樣的自動(dòng)化測(cè)試框架誕生了。

假如,有一天你不再做UI的自動(dòng)化測(cè)試了,你會(huì)發(fā)現(xiàn)你去做單元測(cè)試?或接口測(cè)試基本沒什么難度。開發(fā)個(gè)測(cè)試工具之類的也不在話下,感謝selenium吧!順便也感謝一下我吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評(píng)論 3 428
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,339評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,713評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評(píng)論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,893評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,448評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,201評(píng)論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,397評(píng)論 1 372
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,631評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評(píng)論 1 293
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,128評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,347評(píng)論 2 377

推薦閱讀更多精彩內(nèi)容