性能測試——jmeter的了解和使用

性能測試

應(yīng)用:負(fù)載測試,壓力測試,并發(fā)測試,(非性能測試:但是jmeter能做接口測試)

負(fù)載測試:

在一定的軟件却汉,硬件和網(wǎng)絡(luò)環(huán)境下,通過運(yùn)行一種或者多種業(yè)務(wù)在不同虛擬機(jī)用戶數(shù)量情況下荷并,測試服務(wù)器的性能指標(biāo)是否在用戶的要求范圍內(nèi)合砂,用于確定系統(tǒng)所能承載的最大用戶數(shù)最大有效用戶數(shù)源织,以及不同用戶數(shù)下的系統(tǒng)響應(yīng)時(shí)間及服務(wù)器的資源利用率(其中最大用戶數(shù)是測試系統(tǒng)是否出error時(shí)的用戶數(shù)翩伪,而最大有效用戶數(shù)視公司規(guī)定在某服務(wù)器利用率下用戶數(shù)(包括cpu利用率,磁盤利用率谈息,網(wǎng)絡(luò)資源利用率缘屹,內(nèi)存利用率))

壓力測試:

在一定的軟件,硬件和網(wǎng)絡(luò)條件下侠仇,通過模擬大量的虛擬用戶向服務(wù)器產(chǎn)生負(fù)載轻姿,是服務(wù)器資源處于極限狀態(tài)下長時(shí)間持續(xù)運(yùn)行,以測試服務(wù)器在高負(fù)載情況下能否穩(wěn)定工作。(即測試在某有效用戶數(shù)下長時(shí)間運(yùn)行互亮,系統(tǒng)是否不出error)

并發(fā)測試:

主要指當(dāng)測試多用戶并發(fā)訪問同一個(gè)應(yīng)用犁享、模塊、數(shù)據(jù)時(shí)是否產(chǎn)生隱藏的并發(fā)問題胳挎,如內(nèi)存泄漏饼疙、線程鎖溺森、資源爭用問題慕爬。

三者的區(qū)別:

負(fù)載測試測試系統(tǒng)最大登錄用戶數(shù),壓力測試系統(tǒng)穩(wěn)定性屏积,并發(fā)測試用戶同時(shí)訪問某模塊時(shí)系統(tǒng)的穩(wěn)定性

接口測試:

使用POST或者GET的方式查看返回參數(shù)是否正確(可用jmeter医窿,loadrunner,postman等等)

性能測試工具:Jmeter炊林,LoadRunner(不講)

jmeter和loadrunner區(qū)別:

  • jmeter:開源免費(fèi)姥卢,界面操作差,網(wǎng)上學(xué)習(xí)成本高渣聚,安裝簡易独榴,安裝包小(幾十m)

  • loadrunner:收費(fèi)(十多萬)奕枝,操作性好棺榔,學(xué)習(xí)成本低,安裝復(fù)雜隘道,安裝包大(3-4G)

jmetet環(huán)境搭建:

  • jmeter:jmeter4.0版本症歇,傻瓜式安裝,點(diǎn)擊jmeter-4.0\bin目錄下jmeter.bat或者ApacheJMeter.jar

  • jdk:jmeter4.0要求jdk1.8或者版本8以上

jmeter錄制腳本工具:badboy谭梗,jmeter代理錄制

  • badboy:傻瓜式安裝

jmeter代理錄制

jmeter使用環(huán)境部署:WebTours和phpwind

  • WebTours環(huán)境搭建:

    • strawberry-perl:傻瓜式安裝

    • WebTours:解壓直接放在某目錄下忘晤,打開WebTours主目錄下StartServer開啟服務(wù)

  • phpwind環(huán)境搭建:直接將文件夾置于\xampp\htdocs下,上網(wǎng)安裝服務(wù)

jmeter使用操作:

錄腳本:

打開badboy開始錄制腳本激捏,如上圖所示紅圓點(diǎn)為正在錄制狀態(tài)(其中在紅圓點(diǎn)附近一欄有暫停播放快進(jìn)等功能鍵)设塔,點(diǎn)擊右側(cè)綠色箭頭鍵可進(jìn)入某網(wǎng)站。當(dāng)我們開始錄制腳本時(shí)远舅,紅圓點(diǎn)為按下狀態(tài)顯示正在錄制壹置,我們就可以在網(wǎng)頁欄輸入你想要測試的網(wǎng)站,點(diǎn)擊綠色箭頭鍵就可以訪問網(wǎng)站表谊,這時(shí)候你就可以對網(wǎng)站進(jìn)行操作钞护,你的操作將會被錄制成腳本。操作完成后爆办,左邊script欄會出現(xiàn)你的操作且被轉(zhuǎn)換為http請求难咕。錄制好腳本后就可以導(dǎo)出至jmx文件類型供jmeter使用。

調(diào)試腳本:

好的,你現(xiàn)在已經(jīng)錄制好腳本了余佃,可以開始用所錄制好的腳本進(jìn)行性能測試了暮刃。但是在此之前,你還需要先學(xué)習(xí)jmeter調(diào)試腳本的基本知識爆土。

現(xiàn)在椭懊,你首先要打開jmeter,導(dǎo)入你所錄制的腳本

現(xiàn)在腳本有了步势,我們就先學(xué)習(xí)jmeter的線程組氧猬,循環(huán)控制器,監(jiān)聽器坏瘩,定時(shí)器盅抚,參數(shù)化,斷言倔矾,http默認(rèn)值參數(shù)妄均,事務(wù)控制器吧

線程組:

線程數(shù):即虛擬用戶數(shù),模擬N個(gè)虛擬用戶

ramp-up period:啟動(dòng)時(shí)間哪自,即完全啟動(dòng)所有線程數(shù)所用總時(shí)間丰包,若是線程數(shù)很大,啟動(dòng)時(shí)間很多會造成服務(wù)器壓力過大

循環(huán)次數(shù):指每一線程完整運(yùn)行一個(gè)腳本的次數(shù)壤巷,(PS:運(yùn)行一整個(gè)線程組的總次數(shù)是線程數(shù) * 線程組循環(huán)次數(shù)* 腳本循環(huán)次數(shù))邑彪。可以點(diǎn)擊永遠(yuǎn)隙笆,一般配合調(diào)度器使用

調(diào)度器:

  • 持續(xù)時(shí)間:指運(yùn)行線程組總時(shí)間

  • 啟動(dòng)延遲:經(jīng)過多少秒才運(yùn)行線程組

循環(huán)控制器

我們可以通過添加循環(huán)控制器來控制jmeter循環(huán)腳本的次數(shù)锌蓄,但是用badboy錄制的腳本有問題,第一次使用腳本的時(shí)候線程組的循環(huán)次數(shù)和請求循環(huán)次數(shù)不統(tǒng)一撑柔,需要先把步驟設(shè)置為簡單控制器再設(shè)置為循環(huán)控制器瘸爽。而循環(huán)時(shí)候取值為。

監(jiān)聽器

主要是記錄腳本運(yùn)行時(shí)候各項(xiàng)情況铅忿。

查看結(jié)果樹:記錄每一步運(yùn)行情況(取樣器結(jié)果剪决,請求,響應(yīng)參數(shù))

用表格看結(jié)果:以表格的形式記錄每一步運(yùn)行的情況

斷言結(jié)果:記錄每次斷言后的結(jié)果

聚合報(bào)告:以表格統(tǒng)計(jì)每一個(gè)請求各項(xiàng)數(shù)據(jù)

定時(shí)器:

我們主要用2個(gè)定時(shí)器檀训,一是思考時(shí)間(固定定時(shí)器)柑潦,二是集合點(diǎn)(Synchronizing Timer)

思考時(shí)間:如圖,就是在發(fā)帖該步驟進(jìn)行前設(shè)置一個(gè)等待(等待時(shí)間以毫秒計(jì)算)峻凫,主要用于模擬用戶的實(shí)際使用場景

集合點(diǎn):因?yàn)槊總€(gè)線程開啟時(shí)間不同渗鬼,到達(dá)每個(gè)請求的時(shí)候均不同。故讓每個(gè)線程到了某一步的時(shí)候開始等待荧琼,等其他線程再一起啟動(dòng)譬胎。number of simulated users to group by:等待的線程數(shù)差牛;timeout in milliseconds:等待的毫秒數(shù),如果超過時(shí)間即時(shí)等不到足夠的線程組腳本也會走下去堰乔。該項(xiàng)主要用于并發(fā)測試

參數(shù)化:

目前我們所學(xué)到的參數(shù)化主要有兩種偏化,一是使用csv數(shù)據(jù)文件設(shè)置,二是使用正則表達(dá)式提取器镐侯,三是使用函數(shù)助手侦讨。

  • csv數(shù)據(jù)文件設(shè)置(右鍵添加——配置元件——csv數(shù)據(jù)文件設(shè)置)

    • 如圖:

      • 文件名:可用絕對路徑,也可以用相對路徑

      • 文件編碼:utf-8

      • 變量名稱:不管

      • 忽略首行:忽略CSV文件的第一行苟翻,僅當(dāng)變量名稱不為空時(shí)才使用韵卤,如果變量名稱為空,則第一行必須包含標(biāo)題袜瞬。

      • 分隔符:怜俐,

      • 是否允許帶引號:true

      • 遇到文件結(jié)束符再次循環(huán):Flase

      • 遇到文件結(jié)束符停止線程:flase

      • 線程共享模式:該csv在打開幾次(或說使用幾次)

    • 一般我們按這樣設(shè)置就可以循環(huán)使用csv數(shù)據(jù)身堡,在舒勇csv數(shù)據(jù)的時(shí)候邓尤,將在請求參數(shù)改成${你的參數(shù)}

    • 若想了解更深請看官方文檔

  • 正則表達(dá)式提取器(右鍵添加——后置處理器——正則表達(dá)提取器)

    • 有時(shí)候我們在請求參數(shù)的時(shí)候,他需要一些在前面步驟的響應(yīng)參數(shù)來作為該步驟的請求參數(shù)贴谎,這個(gè)時(shí)候我們就可以從結(jié)果樹判斷該響應(yīng)參數(shù)的位置汞扎,在該步驟下設(shè)置一個(gè)正則表達(dá)式。

      • 引用名稱:就是你提取的響應(yīng)參數(shù)設(shè)置參數(shù)化擅这,使得他能在其他步驟直接調(diào)用

      • 正則表達(dá)式:我在響應(yīng)參數(shù)里面要找到AAABBBCCC澈魄,我要用BBB,那么我就用(.*?)代替BBB仲翎,以AAA和CCC作為路標(biāo)找BBB

      • 模板:1痹扇,假如我有多個(gè)(.*?),我要用第一個(gè)溯香,就用1選擇第一個(gè)括號

      • 匹配數(shù)字:如果我在相應(yīng)數(shù)據(jù)里面找2個(gè)AAA(.*?)CCC鲫构,而我要的是第二個(gè),就可以填2

  • 函數(shù)助手(抬頭選項(xiàng)——函數(shù)助手對話框)

    • 目前我們使用函數(shù)助手對話框可實(shí)現(xiàn)一些簡單功能玫坛,如計(jì)數(shù)结笨,計(jì)算時(shí)間。詳細(xì)請看官方文檔湿镀。

斷言(右鍵斷言——響應(yīng)斷言):

  • 斷言主要是比較該http請求的響應(yīng)參數(shù)與預(yù)期響應(yīng)參數(shù)作比較炕吸,但是要記得預(yù)期寫響相應(yīng)參數(shù)的時(shí)候要參考響應(yīng)參數(shù)

Http默認(rèn)值(右鍵添加——配置元件):

該項(xiàng)主要可以設(shè)置默認(rèn)的IP地址以及默認(rèn)的編碼UTF-8

事務(wù)控制器(右鍵添加——邏輯控制器)

該控制器主要用于打包某幾項(xiàng)http請求為一個(gè)件里面,generate parent sample可以為設(shè)置被打爆的http請求要不要獨(dú)立顯示勉痴,該項(xiàng)在特殊場合有很大的作用赫模。

現(xiàn)在我們有了腳本也學(xué)習(xí)了jmeter的基礎(chǔ)知識(線程組,循環(huán)控制器蒸矛,監(jiān)聽器瀑罗,定時(shí)器扫外,參數(shù)化,斷言廓脆,http默認(rèn)值參數(shù)筛谚,事務(wù)控制器),現(xiàn)在我們就可以用腳本和所學(xué)到的基礎(chǔ)知識調(diào)試腳本停忿,進(jìn)行性能測試了驾讲。

性能測試實(shí)操

負(fù)載測試:測試最大用戶數(shù)

當(dāng)我們錄制好腳本后,我們在腳本中插入監(jiān)聽器聚合報(bào)告席赂,設(shè)置循環(huán)測試三次吮铭,總共測試三次。我們通過從小到大的順序往上調(diào)整線程組數(shù)颅停,當(dāng)該線程數(shù)在測試的聚合報(bào)告中剛好出現(xiàn)error谓晌,那么該次數(shù)就作為最大用戶數(shù)。


  • ps:負(fù)載測試的時(shí)候要注意線程組啟動(dòng)時(shí)間癞揉,要注意避免一開始的壓力過大纸肉;我們在線程組設(shè)置3次是為了避免線程組某些啟動(dòng)過快某些啟動(dòng)過慢造成實(shí)際最大用戶數(shù)有出入;測試三次是為了更準(zhǔn)確測試最大用戶數(shù)喊熟,避免恰巧某一次測試沒報(bào)錯(cuò)導(dǎo)致誤判最大用戶數(shù)的情形

壓力測試:測試有效用戶數(shù)

當(dāng)我們要根據(jù)公司的規(guī)定測試最大用戶數(shù)的時(shí)候柏肪,公司也會讓我們測試最大有效用戶數(shù)(公司一般會讓給我們相關(guān)數(shù)據(jù)如有效cpu占用率,網(wǎng)絡(luò)占用率等等芥牌,而這些我們可以通過軟件Spotlight for windows監(jiān)控)烦味。當(dāng)我們測出來最大有效用戶數(shù)后,我們就可以根據(jù)公司給定的壓力時(shí)間進(jìn)行測試壁拉。這個(gè)時(shí)候我們就可以在線程組設(shè)置循環(huán)次數(shù)設(shè)置為永遠(yuǎn)谬俄,調(diào)度器設(shè)置為XXXXX秒。

PS:要注意準(zhǔn)備充足數(shù)據(jù)弃理,不然時(shí)間還未到溃论,數(shù)據(jù)就跑完了

并發(fā)測試:

并發(fā)測試很簡單,只要測試一個(gè)集合點(diǎn)案铺,測試在等待多少個(gè)用戶一起啟動(dòng)的時(shí)候會出現(xiàn)error蔬芥,記錄下該用戶那就完成了并發(fā)測試了。

性能能測試改善:

分布式負(fù)載(聯(lián)機(jī)負(fù)載)測試:

在使用Jmeter進(jìn)行性能測試時(shí)控汉,如果并發(fā)數(shù)比較大(比如最近項(xiàng)目需要支持1000并發(fā))笔诵,單臺電腦的配置(CPU和內(nèi)存)可能無法支持,這個(gè)時(shí)候可以使用分布式負(fù)載姑子。分布式負(fù)載主要有三部分乎婿,一是控制機(jī),二是負(fù)載機(jī)街佑,三是服務(wù)器谢翎。

控制機(jī)(controller):存放jmeter腳本的機(jī)器(發(fā)號施令)

負(fù)載機(jī)(agent):被連接并用于運(yùn)行腳本的機(jī)器捍靠,負(fù)責(zé)產(chǎn)生負(fù)載(不需要腳本僅負(fù)責(zé)執(zhí)行)

服務(wù)器(the server):被用于測試的機(jī)器(被執(zhí)行)

  • 分布式部署

    • 負(fù)載機(jī):1.安裝jdk1.8或者8以上版本。2.設(shè)置環(huán)境變量森逮。3.獲取本機(jī)IP地址

    • 控制機(jī):1榨婆,改配置文件:修改jmeter的bin目錄下的jmeter.properties,在properties中找到remote_hosts=....褒侧,添加遠(yuǎn)程負(fù)載機(jī)的ip和端口(端口默認(rèn)1099良风,IP不包括控制機(jī),如果修改該端口需要在負(fù)載機(jī)配置文件中修改server_prot=xxx)闷供,多個(gè)負(fù)載機(jī)之間用英文逗號隔開烟央。修改配置后重啟jmeter,修改后的配置即生效歪脏。

    • 服務(wù)器:開啟服務(wù)即可疑俭。

  • 操作:

    • 負(fù)載機(jī)(m):運(yùn)行jmeter.server.bat

    • 控制機(jī):啟動(dòng)jmeter,在選擇菜單run中的remote start運(yùn)行負(fù)載機(jī)(可以逐個(gè)運(yùn)行婿失,也可以全部一起運(yùn)行)钞艇;選擇腳本,設(shè)置線程數(shù)為n移怯,最終服務(wù)器承受的線程數(shù)=負(fù)載機(jī)個(gè)數(shù)*線程數(shù)n

      • 注意:

        • 1.如你是用的是4.0以及以后版本的jmeter香璃,那可能會報(bào)找不到rmi_keystore.jks文件的錯(cuò)誤
            *   這個(gè)時(shí)候需要你修改bin目錄下jmeter.properties配置文件这难,將server.rmi.ssl.disable=XXX舟误,這個(gè)XXX要改成true

            *  ![](https://upload-images.jianshu.io/upload_images/12191514-3ca95879c922b0ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



        *   2.如果控制機(jī)無法連接負(fù)載機(jī),那就先ping一下姻乓,看看網(wǎng)絡(luò)是否相同嵌溢,如果相同那就先看看是否開了殺毒軟件或者防火墻,如果開啟了就關(guān)閉再重啟連接(一般來說負(fù)載機(jī)關(guān)了防火墻就能被連接蹋岩,控制機(jī)關(guān)防火墻就可以接收報(bào)告)

        *   3.運(yùn)行腳本的時(shí)候赖草,要保證使用腳本調(diào)用的參數(shù)名和提取數(shù)據(jù)的路徑(路徑可使用相對路徑)要相同

        *   4.要根據(jù)實(shí)際系統(tǒng)的業(yè)務(wù)先確認(rèn)所有的負(fù)載機(jī)是否能用同一份數(shù)據(jù),如果數(shù)據(jù)要保持唯一性(如注冊)剪个,那么各個(gè)負(fù)載機(jī)數(shù)據(jù)就不能用同一份秧骑,如果沒有唯一性,那么就可以用同一份

非GUI模式運(yùn)行:

講非GUI模式運(yùn)行的時(shí)候我們先來看看GUI和非GUI兩者的區(qū)別:

gui:界面會消耗很多資源扣囊,并且運(yùn)行的結(jié)果是保存在Jmeter運(yùn)行的內(nèi)存中乎折。當(dāng)時(shí)間一長,內(nèi)存增長到一定程度侵歇,就會報(bào)錯(cuò)骂澄,甚至假死。
非gui:實(shí)時(shí)的將運(yùn)行l(wèi)og文件保存到本地文件中惕虑,不會撐爆內(nèi)存坟冲。并且對機(jī)器的資源占用也較少磨镶。

好,上面的的說的很清楚為什么要用非GUI健提,就是因?yàn)榉荊UI占用資源少嘛琳猫!

  • 操作步驟

    • 1.打開命令窗口,進(jìn)入存放腳本的目錄:

    • 2.輸入命令:jmeter -n -t lookgoods.jmx -l lookgoods_res.jtl -r -X

      • PS:其中-n指非GUI模式運(yùn)行私痹;-t指要執(zhí)行的腳本文件XXX沸移,-l指定保存測試統(tǒng)計(jì)結(jié)果的jtl文件XXX;-r指在jmeter.properties文件內(nèi)定義的所有遠(yuǎn)程主機(jī)上運(yùn)行測試(這樣就可以進(jìn)行負(fù)載測試)侄榴,-X指在非GUI模式運(yùn)行時(shí)雹锣,運(yùn)行完測試自動(dòng)退出遠(yuǎn)程主機(jī),即斷開連接癞蚕。生成的jtl測試結(jié)果文件和腳本在同一目錄下

    注意:

    • 若你們需要改變文件的存儲位置蕊爵,可以再命令 jmeter -n -t lookgoods.jmx -l lookgoods_res.jtl -r -X的lookgoods_res.jtl前面加地址(相對路徑或者絕對路徑)

系統(tǒng)資源監(jiān)控改進(jìn)

在實(shí)際操作中,我們可能會使用window自帶的cup監(jiān)視器桦山,也可能會用其他的cup監(jiān)視器如Spotlight攒射。但是window自帶的監(jiān)視器功能不夠完善,用其他的會占用內(nèi)存恒水,這個(gè)時(shí)候就可以遠(yuǎn)程監(jiān)控cpu会放。 有能力的可以去了解一下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钉凌,隨后出現(xiàn)的幾起案子咧最,更是在濱河造成了極大的恐慌,老刑警劉巖御雕,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矢沿,死亡現(xiàn)場離奇詭異,居然都是意外死亡酸纲,警方通過查閱死者的電腦和手機(jī)捣鲸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闽坡,“玉大人栽惶,你說我怎么就攤上這事〖残幔” “怎么了外厂?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宪迟。 經(jīng)常有香客問我酣衷,道長,這世上最難降的妖魔是什么次泽? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任穿仪,我火速辦了婚禮席爽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啊片。我一直安慰自己只锻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布紫谷。 她就那樣靜靜地躺著齐饮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笤昨。 梳的紋絲不亂的頭發(fā)上祖驱,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音瞒窒,去河邊找鬼捺僻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛崇裁,可吹牛的內(nèi)容都是我干的匕坯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼拔稳,長吁一口氣:“原來是場噩夢啊……” “哼葛峻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起巴比,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤术奖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后匿辩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腰耙,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年铲球,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晰赞。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稼病,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掖鱼,到底是詐尸還是另有隱情然走,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布戏挡,位于F島的核電站芍瑞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏褐墅。R本人自食惡果不足惜拆檬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一洪己、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竟贯,春花似錦答捕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至持际,卻和暖如春沃琅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜘欲。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工阵难, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人芒填。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓呜叫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親殿衰。 傳聞我的和親對象是個(gè)殘疾皇子朱庆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

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