【讀書筆記】《深入性能測(cè)試-LoadRunner性能測(cè)試》【第13章 性能測(cè)試過程】

文/秋之川


【目錄】

【上一章】

第九足陨、十、十一读虏、十二這四章是資源監(jiān)控责静,因?yàn)槟壳岸际情_發(fā)在協(xié)助監(jiān)控,所以有待后續(xù)加強(qiáng)學(xué)習(xí)盖桥。

13.1 性能測(cè)試過程概述

在實(shí)際的測(cè)試過程中灾螃,性能測(cè)試工具 LoadRunner 只是將性能測(cè)試策略轉(zhuǎn)化為可執(zhí)行的腳本并產(chǎn)生壓力,但在進(jìn)行測(cè)試前還需要確定性能測(cè)試策略揩徊,即性能測(cè)試設(shè)計(jì)和構(gòu)建腰鬼。整個(gè)性能測(cè)試過程主要包括4個(gè)階段:

性能測(cè)試設(shè)計(jì):定義待測(cè)試的事務(wù)流程、事務(wù)的平均處理量塑荒、事務(wù)處理量的最高峰值熄赡、組合事務(wù)流程、系統(tǒng)的整體用戶和響應(yīng)時(shí)間目標(biāo)

性能測(cè)試構(gòu)建:涉及設(shè)置和配置測(cè)試系統(tǒng)及基礎(chǔ)設(shè)施齿税、使用自動(dòng)化性能測(cè)試解決方案構(gòu)建測(cè)試腳本和附在方案

性能測(cè)試執(zhí)行:包括運(yùn)行負(fù)載方案和測(cè)量系統(tǒng)性能

性能測(cè)試分析彼硫、診斷、調(diào)節(jié):主要測(cè)量系統(tǒng)性能并使負(fù)載測(cè)試進(jìn)入下一級(jí)別,重點(diǎn)查找問題原因以幫助開發(fā)工程師解決問題拧篮,并實(shí)時(shí)調(diào)節(jié)系統(tǒng)參數(shù)以提高性能

13.2 性能測(cè)試設(shè)計(jì)

設(shè)計(jì)階段是性能測(cè)試團(tuán)隊(duì)與事務(wù)領(lǐng)域的精力合作以收集性能要求的主要事務(wù)響應(yīng)時(shí)間词渤。可以將需要關(guān)注的問題分為4個(gè)方面:事務(wù)需求串绩、技術(shù)需求缺虐、系統(tǒng)要求和團(tuán)隊(duì)要求,分析時(shí)主要從5個(gè)方面:需求調(diào)研礁凡、事務(wù)模型高氮、場(chǎng)景模型、數(shù)據(jù)設(shè)計(jì)和環(huán)境設(shè)計(jì)顷牌,其中事務(wù)模型是該階段中最重要的纫溃。

13.2.1 需求調(diào)研

確定本次性能測(cè)試的對(duì)象以及被測(cè)對(duì)象的一些屬性,主要包括及部分工作:

(1)測(cè)試系統(tǒng)預(yù)研
根據(jù)被測(cè)系統(tǒng)的資料韧掩,了解相關(guān)知識(shí),技術(shù)架構(gòu)窖铡、業(yè)務(wù)架構(gòu)等疗锐。這個(gè)階段需要完成的工作有:
? ? 確定被測(cè)系統(tǒng)的開發(fā)組織和負(fù)責(zé)人
? ? 向項(xiàng)目經(jīng)理申請(qǐng)被測(cè)試系統(tǒng)相關(guān)資料
? ? 一些其他的例外情況溝通

(2)與項(xiàng)目經(jīng)理訪談
獲取性能測(cè)試實(shí)施工作開展的相關(guān)信息、當(dāng)前開發(fā)狀態(tài)和期望的性能目標(biāo)费彼,包括性能測(cè)試實(shí)施起止時(shí)間和被測(cè)系統(tǒng)所處的生命周期滑臊。

(3)與業(yè)務(wù)專家訪談
獲取性能測(cè)試業(yè)務(wù)模型設(shè)計(jì)的相關(guān)數(shù)據(jù),如:關(guān)鍵業(yè)務(wù)箍铲、主要用戶場(chǎng)景雇卷、交易發(fā)生概率、期望響應(yīng)時(shí)間等業(yè)務(wù)層面信息颠猴,此外還需要從業(yè)務(wù)團(tuán)隊(duì)獲得相關(guān)業(yè)務(wù)工程師來(lái)支持后續(xù)腳本開發(fā)关划,避免開發(fā)失敗或出現(xiàn)錯(cuò)誤。

關(guān)鍵業(yè)務(wù)的判斷:
a. 使用頻率:指客戶操作該業(yè)務(wù)的頻率翘瓮,該值越大說(shuō)明失效的概率越大贮折;
b. 優(yōu)先級(jí):指業(yè)務(wù)的等級(jí),該值越高說(shuō)明客戶操作該業(yè)務(wù)的概率越大资盅,從業(yè)務(wù)角度來(lái)說(shuō)调榄,核心業(yè)務(wù)和基本業(yè)務(wù)的優(yōu)先級(jí)比較高;
c. 占用資源情況:操作一次該業(yè)務(wù)對(duì)系統(tǒng)資源消耗的情況呵扛,如果消耗高每庆,那么可能讓系統(tǒng)處于高負(fù)荷的運(yùn)行狀態(tài),這樣業(yè)務(wù)失效的風(fēng)險(xiǎn)就變大了今穿;

(4)與技術(shù)專家訪談
a. 獲取關(guān)鍵業(yè)務(wù)的技術(shù)路徑缤灵;
b. 獲取合適的支持工程師;
c. 請(qǐng)技術(shù)專家確定關(guān)鍵業(yè)務(wù)是否覆蓋到被測(cè)試系統(tǒng)的所有業(yè)務(wù)請(qǐng)求點(diǎn);
d. 確定這些業(yè)務(wù)所使用到的關(guān)鍵數(shù)據(jù)庫(kù)表凤价;
e. 監(jiān)控階段鸽斟,技術(shù)支持人員配合實(shí)施監(jiān)控配置工作;
f. 一些特殊技術(shù)的支持利诺,如加解密等富蓄;

(5)與數(shù)據(jù)庫(kù)管理員訪談
獲取數(shù)據(jù)準(zhǔn)備和測(cè)試數(shù)據(jù)建模的建議,主要包括:
a. DBA 輔助進(jìn)行數(shù)據(jù)庫(kù)的備份與恢復(fù)工作慢逾;
b. 為數(shù)據(jù)建模提供建議立倍;
c. 為建基礎(chǔ)數(shù)據(jù)模型做準(zhǔn)備;

(6)與客戶代表訪談
獲取用戶在業(yè)務(wù)建模上的支持侣滩,保證業(yè)務(wù)流程的正確性口注。

13.2.2 業(yè)務(wù)模型

主要用于指導(dǎo)如何將具體的業(yè)務(wù)變成可重復(fù)運(yùn)行的代碼,主要從以下3個(gè)方面分析:

業(yè)務(wù)流程列表:

創(chuàng)建關(guān)鍵業(yè)務(wù)流程列表君珠,以反映最終用戶在系統(tǒng)上執(zhí)行的活動(dòng)寝志。業(yè)務(wù)流程表需要反映每個(gè)業(yè)務(wù)在高峰期時(shí)操作的用戶數(shù),主要來(lái)源于后臺(tái)的歷史數(shù)據(jù)策添。

交易列表:

交易業(yè)務(wù)流程需要確定關(guān)鍵業(yè)務(wù)的負(fù)載情況材部、交易量等相關(guān)信息。通過交易列表可以確定業(yè)務(wù)的優(yōu)先級(jí)唯竹。

日常業(yè)務(wù):可以通過后臺(tái)數(shù)據(jù)來(lái)統(tǒng)計(jì)乐导,可以分析3個(gè)月、半年或一年的數(shù)據(jù)浸颓,得到這些業(yè)務(wù)每小時(shí)或每秒操作的筆數(shù)物臂。

高峰期業(yè)務(wù):選擇峰值情況下,單位時(shí)間內(nèi)業(yè)務(wù)操作的筆數(shù)产上。

風(fēng)險(xiǎn):是指當(dāng)該業(yè)務(wù)失效或發(fā)生錯(cuò)誤時(shí)對(duì)客戶的影響棵磷。

百分比模型:

指被測(cè)試的業(yè)務(wù)交易筆數(shù)所占整個(gè)業(yè)務(wù)交易筆數(shù)的百分比

交易量評(píng)估:

通過歷史數(shù)據(jù)來(lái)估算系統(tǒng)負(fù)載能力,通常使用80/20原理晋涣。指的是每個(gè)工作日中80%的業(yè)務(wù)在20%的時(shí)間內(nèi)完成泽本。每年業(yè)務(wù)集中在8個(gè)月,每個(gè)月集中在20個(gè)工作日完成姻僧,每個(gè)工作日8h规丽,每天80%的業(yè)務(wù)在1.6h完成。

13.2.3 場(chǎng)景模型

主要用于指導(dǎo)在控制器中如何進(jìn)行場(chǎng)景設(shè)計(jì)和場(chǎng)景監(jiān)控撇贺。

場(chǎng)景設(shè)計(jì)需要確定的內(nèi)容主要包括:使用的場(chǎng)景設(shè)計(jì)類型(手動(dòng)場(chǎng)景或目標(biāo)場(chǎng)景)赌莺、并發(fā)用戶數(shù)、虛擬用戶加載過程松嘶、腳本持續(xù)運(yùn)行時(shí)間艘狭、虛擬用戶釋放過程、使用的負(fù)載機(jī)、IP欺騙技術(shù)和 RTS 的設(shè)置巢音。

場(chǎng)景設(shè)計(jì)


RTS設(shè)置


監(jiān)控模型

13.2.4 數(shù)據(jù)設(shè)計(jì)

確定在整個(gè)性能測(cè)試過程中需要使用的數(shù)據(jù)遵倦,一是性能測(cè)試前需要準(zhǔn)備的基礎(chǔ)數(shù)據(jù);二是性能測(cè)試過程中參數(shù)化所需要用到的數(shù)據(jù)官撼。

基礎(chǔ)數(shù)據(jù)的不同直接影響到性能測(cè)試的結(jié)果梧躺,如查詢功能,數(shù)據(jù)庫(kù)中已存在100條記錄和已存在100萬(wàn)條記錄傲绣,查詢的響應(yīng)時(shí)間肯定是不同的掠哥,所以這需要在測(cè)試前確定。


基礎(chǔ)數(shù)據(jù)表格式

參數(shù)化需要使用到的數(shù)據(jù)也分兩種:一是為自己構(gòu)建的數(shù)據(jù)秃诵;二是歷史數(shù)據(jù)续搀。構(gòu)建數(shù)據(jù)是測(cè)試過程中通過一些方法生成批量數(shù)據(jù),通常用 Ultraedit 結(jié)合 Excel 制作菠净、數(shù)據(jù)庫(kù)獲取禁舷、Shell 編程和 Java 編程,目前我們只用到前兩種方法毅往。

歷史數(shù)據(jù)則是真實(shí)存在的數(shù)據(jù)榛了,可調(diào)用客戶的真實(shí)數(shù)據(jù),也可以事先制作煞抬,它們一般都是存儲(chǔ)在 DB 里的,所以需要用 SQL 關(guān)聯(lián)參數(shù)的方式來(lái)獲取构哺。

數(shù)據(jù)設(shè)計(jì)模型

不管是哪種數(shù)據(jù)革答,我們都應(yīng)該遵循幾個(gè)原則:

1、全面性

指設(shè)計(jì)的數(shù)據(jù)應(yīng)該包含所有類型的數(shù)據(jù)曙强,需要覆蓋客戶操作過程中所有類型的數(shù)據(jù)残拐。

2、無(wú)約束性

指數(shù)據(jù)與數(shù)據(jù)之間不能存在相互約束的現(xiàn)象碟嘴。

3溪食、正確性

指設(shè)計(jì)的數(shù)據(jù)應(yīng)該保證業(yè)務(wù)能被正確地運(yùn)行,因?yàn)樾阅軠y(cè)試的目的是測(cè)試業(yè)務(wù)的響應(yīng)時(shí)間娜扇,而非測(cè)試功能測(cè)試错沃,所以設(shè)計(jì)數(shù)據(jù)時(shí),不能因?yàn)槿藶榈脑驅(qū)е聵I(yè)務(wù)操作失敗雀瓢,如果是數(shù)據(jù)導(dǎo)致業(yè)務(wù)失敗枢析,那么在結(jié)果分析過程中分析事務(wù)的成功率就不準(zhǔn)確了,導(dǎo)致影響整個(gè)性能測(cè)試的結(jié)果刃麸。

4醒叁、數(shù)據(jù)量充足

準(zhǔn)備的數(shù)據(jù)是否充足也會(huì)影響到性能測(cè)試結(jié)果,比如在一些業(yè)務(wù)場(chǎng)景中,因?yàn)閿?shù)據(jù)量不夠把沼,導(dǎo)致準(zhǔn)備的數(shù)據(jù)比腳本迭代的次數(shù)少啊易,那么將會(huì)重新循環(huán)或一直使用最后一個(gè)數(shù)據(jù),這樣就容易導(dǎo)致一些業(yè)務(wù)失敗饮睬。

5租谈、無(wú)敏感數(shù)據(jù)

安全性是軟件特性中的一個(gè)很重要的維度,在設(shè)計(jì)數(shù)據(jù)進(jìn)行性能測(cè)試時(shí)续捂,需要注意避免一些敏感數(shù)據(jù)垦垂,即使使用,也應(yīng)該用密文顯示而非明文牙瓢。

13.2.5 環(huán)境設(shè)計(jì)

環(huán)境設(shè)計(jì)主要是確定性能測(cè)試執(zhí)行過程中服務(wù)器和測(cè)試機(jī)所處的環(huán)境劫拗,包括三部分內(nèi)容:

系統(tǒng)運(yùn)行的拓?fù)浣Y(jié)構(gòu)圖:用于指導(dǎo)如何搭建測(cè)試環(huán)境


拓?fù)鋱D

服務(wù)器和測(cè)試機(jī)環(huán)境:一是服務(wù)器和測(cè)試機(jī)的硬件配置;二是服務(wù)器和測(cè)試機(jī)的軟件配置矾克;服務(wù)器的硬件配置是一個(gè)基準(zhǔn)環(huán)境页慷,而負(fù)載機(jī)的硬件測(cè)試配置則受每個(gè)VUser 運(yùn)行時(shí)所消耗的內(nèi)存資源的影響;


配置表

環(huán)境的備份與恢復(fù):需要這么做有兩個(gè)原因:

(1)測(cè)試前如果環(huán)境不確定胁附,可能會(huì)導(dǎo)致一些數(shù)據(jù)運(yùn)行失敗酒繁,進(jìn)而導(dǎo)致一些業(yè)務(wù)運(yùn)行失敗控妻;

(2)如果不及時(shí)恢復(fù)環(huán)境州袒,會(huì)影響到手工測(cè)試的數(shù)據(jù),所以建議性能測(cè)試環(huán)境和手工測(cè)試環(huán)境剝離開來(lái)弓候,我們目前就是用虛擬機(jī)作為手工測(cè)試環(huán)境郎哭,物理機(jī)環(huán)境用于性能測(cè)試;

13.3 性能測(cè)試構(gòu)建

性能測(cè)試設(shè)計(jì)完成后菇存,需要將設(shè)計(jì)的策略變成現(xiàn)實(shí)夸研,這樣才能執(zhí)行性能測(cè)試。構(gòu)建階段需要完成以下幾個(gè)方面的工作:

13.3.1 腳本開發(fā)


腳本開發(fā)過程

下面這個(gè)表是腳本開發(fā)檢查點(diǎn)依鸥,在實(shí)際應(yīng)用中亥至,可以將它與腳本規(guī)范檢查合二為一。

腳本開發(fā)檢查點(diǎn)

13.3.2 場(chǎng)景設(shè)計(jì)

場(chǎng)景設(shè)計(jì)就是將場(chǎng)景模型轉(zhuǎn)化為場(chǎng)景策略的過程贱迟。主要包括:場(chǎng)景策略姐扮、負(fù)載機(jī)、RTS衣吠、集合點(diǎn)設(shè)置溶握。該過程也可以采用 Checklist 方式保證質(zhì)量。


場(chǎng)景設(shè)計(jì)檢查點(diǎn)

13.3.3 搭建測(cè)試環(huán)境

根據(jù)環(huán)境設(shè)計(jì)策略搭建需要執(zhí)行測(cè)試時(shí)的環(huán)境蒸播,一是搭建環(huán)境睡榆,二是審核環(huán)境萍肆。

13.3.4 準(zhǔn)備數(shù)據(jù)

指根據(jù)數(shù)據(jù)設(shè)計(jì)的策略生成測(cè)試過程中需要的數(shù)據(jù),其中包含兩類數(shù)據(jù):一是基礎(chǔ)數(shù)據(jù)胀屿;二是測(cè)試過程中需要參數(shù)化的數(shù)據(jù)塘揣。基礎(chǔ)數(shù)據(jù)一般都存在數(shù)據(jù)庫(kù)中宿崭,但對(duì)于參數(shù)化過程中需要使用的數(shù)據(jù)則不一定是存儲(chǔ)在數(shù)據(jù)庫(kù)中亲铡,可能存儲(chǔ)在不同的載體中,那么在存儲(chǔ)這些參數(shù)化過程中使用的數(shù)據(jù)時(shí)葡兑,選擇的載體很重要奖蔓,因?yàn)椴煌妮d體會(huì)影響到參數(shù)化的技術(shù)。

13.4 性能測(cè)試過程執(zhí)行

根據(jù)性能測(cè)試的策略不同讹堤,性能測(cè)試執(zhí)行策略也有所不同吆鹤,并且一般需要執(zhí)行多次才能達(dá)到目的。

13.5 性能測(cè)試分析洲守、診斷疑务、調(diào)節(jié)

在完成負(fù)載測(cè)試的設(shè)計(jì)、構(gòu)建和執(zhí)行階段后梗醇,項(xiàng)目將進(jìn)入分析知允、診斷和調(diào)節(jié)階段,這一階段是實(shí)時(shí)和反復(fù)進(jìn)行的叙谨,負(fù)載測(cè)試解決方案應(yīng)該提供有關(guān)最終用戶温鸽、系統(tǒng)級(jí)別和代碼性能數(shù)據(jù)的全面信息,同時(shí)查找導(dǎo)致性能降低的可能原因手负,這些信息能使你確定是否已經(jīng)達(dá)到性能目標(biāo)涤垫。

(1)監(jiān)控〕媪铮可顯示基礎(chǔ)設(shè)備每個(gè)層上所發(fā)生的一切,同時(shí)會(huì)更清晰地提供有關(guān)測(cè)試中數(shù)據(jù)庫(kù)服務(wù)器股缸、Web服務(wù)器衡楞、應(yīng)用程序服務(wù)器、單個(gè)應(yīng)用程序或流程的信息敦姻。

(2)分析瘾境。將各種指標(biāo)關(guān)聯(lián)起來(lái),以獲取有關(guān)應(yīng)用程序行為的其他信息镰惦。

(3)診斷迷守。高效的性能測(cè)試解決方案應(yīng)該向性能工程師提供有關(guān)層、組件旺入、SQL語(yǔ)句是如何影響負(fù)載業(yè)務(wù)流程整體性能的單個(gè)統(tǒng)一視圖兑凿,性能工程師能看到由最終用戶交易所接觸到的所有組件凯力,然后確定各組件使用的處理時(shí)間及調(diào)用次數(shù)。

(4)有些自動(dòng)化性能測(cè)試解決方案可系統(tǒng)地識(shí)別并分離基礎(chǔ)設(shè)施性能瓶頸礼华,然后通過修改系統(tǒng)配置設(shè)定來(lái)解決它們咐鹤,通過反復(fù)解決基礎(chǔ)設(shè)施性能瓶頸,可以不斷改進(jìn)配置圣絮。

【目錄】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末祈惶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子扮匠,更是在濱河造成了極大的恐慌捧请,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棒搜,死亡現(xiàn)場(chǎng)離奇詭異疹蛉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帮非,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門氧吐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人末盔,你說(shuō)我怎么就攤上這事筑舅。” “怎么了陨舱?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵翠拣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我游盲,道長(zhǎng)误墓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任益缎,我火速辦了婚禮谜慌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘莺奔。我一直安慰自己欣范,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布令哟。 她就那樣靜靜地躺著恼琼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屏富。 梳的紋絲不亂的頭發(fā)上晴竞,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音狠半,去河邊找鬼噩死。 笑死颤难,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甜滨。 我是一名探鬼主播乐严,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼衣摩!你這毒婦竟也來(lái)了昂验?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤艾扮,失蹤者是張志新(化名)和其女友劉穎既琴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泡嘴,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甫恩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酌予。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磺箕。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抛虫,靈堂內(nèi)的尸體忽然破棺而出松靡,到底是詐尸還是另有隱情,我是刑警寧澤建椰,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布雕欺,位于F島的核電站,受9級(jí)特大地震影響棉姐,放射性物質(zhì)發(fā)生泄漏屠列。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一伞矩、第九天 我趴在偏房一處隱蔽的房頂上張望笛洛。 院中可真熱鬧,春花似錦乃坤、人聲如沸苛让。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蝌诡。三九已至溉贿,卻和暖如春枫吧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宇色。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工九杂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颁湖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓例隆,卻偏偏與公主長(zhǎng)得像甥捺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镀层,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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