如何在DevOps中實(shí)施連續(xù)測(cè)試

在過去的十年中边臼,對(duì)軟件開發(fā)的需求已急劇發(fā)展磷斧。軟件已成為公司獲得競(jìng)爭(zhēng)優(yōu)勢(shì)的關(guān)鍵優(yōu)勢(shì)动分,特別是如果您的公司屬于SaaS范疇毅糟。通過在SDLC中實(shí)施瀑布等傳統(tǒng)流程,組織現(xiàn)在正在向敏捷過渡澜公,以便以更快的速度在市場(chǎng)上交付軟件姆另。為了應(yīng)對(duì)RAD(快速應(yīng)用程序開發(fā)),出現(xiàn)了許多新方法坟乾,例如CI / CD迹辐,DevOps,Shift左鍵測(cè)試甚侣,為了更好地構(gòu)建明吩,開發(fā)和優(yōu)化軟件交付。
即便如此渺绒,試圖同時(shí)保持質(zhì)量和速度仍然是一個(gè)真正的挑戰(zhàn)贺喝,測(cè)試方法可以幫助或降低整個(gè)加速過程。今天宗兼,我們將探討在DevOps中進(jìn)行連續(xù)測(cè)試的重要性躏鱼。在本文中,將討論什么是連續(xù)測(cè)試殷绍?還將幫助消除與連續(xù)測(cè)試有關(guān)的錯(cuò)誤觀點(diǎn)染苛。我們還將探討DevOps中連續(xù)測(cè)試所涉及的挑戰(zhàn),以及最佳實(shí)踐主到,以幫助您以專業(yè)人員的身份執(zhí)行連續(xù)測(cè)試過程茶行。

什么是連續(xù)測(cè)試?

連續(xù)測(cè)試是端到端的質(zhì)量維護(hù)過程登钥,其中團(tuán)隊(duì)不斷進(jìn)行各種自動(dòng)化測(cè)試畔师。同時(shí),分析與最新軟件開發(fā)相關(guān)的各種業(yè)務(wù)風(fēng)險(xiǎn)牧牢,并為開發(fā)人員提供快速反饋看锉。這種反饋有助于在早期階段識(shí)別缺陷和錯(cuò)誤,并鼓勵(lì)開發(fā)人員在SDLC(軟件開發(fā)生命周期)的后續(xù)階段中優(yōu)化其代碼塔鳍。

與在開發(fā)周期結(jié)束時(shí)交付結(jié)果的傳統(tǒng)測(cè)試方法不同伯铣,連續(xù)測(cè)試在多個(gè)階段進(jìn)行,包括開發(fā)轮纫,集成腔寡,過渡環(huán)境和生產(chǎn)環(huán)境。連續(xù)測(cè)試可確保在開發(fā)過程中盡早解決缺陷和問題掌唾,從而提高整體質(zhì)量并節(jié)省大量時(shí)間和金錢放前。

連續(xù)測(cè)試的好處

常規(guī)測(cè)試技術(shù)在很大程度上取決于手動(dòng)測(cè)試和需要定期更新的自動(dòng)測(cè)試忿磅,這可能會(huì)阻礙交付過程的速度。這就是諸如敏捷犀斋,DevOps贝乎,持續(xù)集成和持續(xù)交付之類的現(xiàn)代方法論所探討的內(nèi)容。

在DevOps中實(shí)施連續(xù)測(cè)試可以通過以下方式取得成果:

  • 持續(xù)風(fēng)險(xiǎn)分析:可能有一個(gè)版本的版本(候選發(fā)布)通過所有可用測(cè)試叽粹,但沒有準(zhǔn)備由業(yè)務(wù)負(fù)責(zé)人發(fā)布,持續(xù)測(cè)試將在每個(gè)階段評(píng)估這些風(fēng)險(xiǎn)却舀。
  • 牢記用戶體驗(yàn):連續(xù)測(cè)試是一個(gè)可以輕松適應(yīng)不斷變化的客戶要求的過程虫几。通過根據(jù)客戶反饋在應(yīng)用程序中進(jìn)行不斷更新,將持續(xù)測(cè)試與DevOps集成在一起可以幫助使您的軟件變得更加健壯和穩(wěn)定挽拔。從客戶的角度來看辆脸,您可以靈活地編寫有效的測(cè)試用例。就用戶體驗(yàn)進(jìn)行正確的測(cè)試對(duì)于評(píng)估前端和后端所有相關(guān)技術(shù)的最終用戶體驗(yàn)至關(guān)重要螃诅。
  • 幫助安全性:持續(xù)測(cè)試建立了一個(gè)支持系統(tǒng)啡氢,該系統(tǒng)可確保應(yīng)用程序免受意外更改和攻擊的安全性,這些更改和攻擊在部署后也可能會(huì)遇到术裸。在加速的開發(fā)過程中倘是,即使在軟件出現(xiàn)故障的情況下,它也可以確保系統(tǒng)穩(wěn)定且可恢復(fù)袭艺。
  • 從一開始就進(jìn)行持續(xù)集成:持續(xù)測(cè)試期望測(cè)試從開發(fā)過程的早期就被嵌入搀崭,而不是在發(fā)布之前就進(jìn)行處理。測(cè)試不斷集成到軟件交付管道和DevOps工具鏈中猾编。
  • 涵蓋功能和非功能測(cè)試:連續(xù)測(cè)試可模擬所有類型的功能測(cè)試瘤睹,例如跨瀏覽器測(cè)試,回歸測(cè)試答倡,集成測(cè)試轰传,API測(cè)試,單元測(cè)試瘪撇;還有非功能性測(cè)試获茬,例如可用性測(cè)試,安全性測(cè)試设江,可靠性測(cè)試锦茁,可伸縮性測(cè)試等等。
  • 及時(shí)的反饋而不會(huì)造成任何瓶頸:連續(xù)測(cè)試會(huì)在交付管道的適當(dāng)階段評(píng)估現(xiàn)代體系結(jié)構(gòu)的每一層叉存,并在交付管道的正確階段提供可行的反饋码俩,而不會(huì)造成冗長(zhǎng)的排隊(duì)。
  • 節(jié)省時(shí)間歼捏,金錢和資源:及早發(fā)現(xiàn)bug不僅可以節(jié)省發(fā)布窗口的資源稿存,還可以幫助您節(jié)省大量金錢和資源笨篷。持續(xù)測(cè)試通過使用諸如開發(fā)測(cè)試或左移測(cè)試之類的缺陷預(yù)防策略,減少了用于發(fā)現(xiàn)和修復(fù)缺陷的時(shí)間和資源瓣履。

與DevOps中的持續(xù)測(cè)試有關(guān)的錯(cuò)誤觀點(diǎn)

  • “將導(dǎo)致測(cè)試人員失業(yè)”:測(cè)試人員對(duì)框架有一種看法:他們可以看到客戶如何與之交互率翅。盡管自動(dòng)化的發(fā)展非常迅速,但它還沒有達(dá)到完全取代手動(dòng)測(cè)試的水平袖迎。引入自動(dòng)化的全部目的是為手動(dòng)測(cè)試人員提供更多的時(shí)間冕臭,以提出更有效的測(cè)試方案。仍然存在重要的手動(dòng)活動(dòng)燕锥,例如探索性測(cè)試和可用性測(cè)試辜贵,測(cè)試人員應(yīng)該持續(xù)執(zhí)行它們,這是他們工作的特征归形。當(dāng)然托慨,他們需要獲得作為軟件測(cè)試人員的有效技能。
  • “只有測(cè)試人員才能為連續(xù)測(cè)試做出貢獻(xiàn)”:連續(xù)測(cè)試的某些或全部部分對(duì)于任何類型的團(tuán)隊(duì)及其團(tuán)隊(duì)成員都是至關(guān)重要的暇榴。例如厚棵,讓測(cè)試人員與開發(fā)人員并肩作戰(zhàn)可能使他們能夠創(chuàng)建高級(jí)的自動(dòng)化測(cè)試套件。這樣蔼紧,開發(fā)人員就有機(jī)會(huì)理解測(cè)試人員的觀點(diǎn)婆硬,并且測(cè)試人員還可以學(xué)習(xí)和提高他們的測(cè)試自動(dòng)化技能。
  • “連續(xù)測(cè)試意味著連續(xù)執(zhí)行測(cè)試用例”:正如我已經(jīng)解釋過的歉井,連續(xù)測(cè)試還有很多其他功能柿祈。它不僅執(zhí)行功能測(cè)試和非功能測(cè)試,而且連續(xù)測(cè)試還涵蓋了從左移(單元哩至,組件躏嚎,覆蓋范圍,綜合風(fēng)險(xiǎn)評(píng)估)到“右移”(監(jiān)視/ APM菩貌,生產(chǎn)中的測(cè)試卢佣,客戶體驗(yàn),虛擬化測(cè)試)箭阶。
  • “連續(xù)測(cè)試和自動(dòng)化測(cè)試是相同的”:通過自動(dòng)化虚茶,企業(yè)正在嘗試實(shí)施敏捷的測(cè)試策略:“盡早測(cè)試,經(jīng)常測(cè)試仇参,到處測(cè)試”嘹叫。冗長(zhǎng)的測(cè)試腳本會(huì)自動(dòng)執(zhí)行并定期進(jìn)行更新,借助自動(dòng)化測(cè)試工具诈乒,自動(dòng)化測(cè)試可用于執(zhí)行連續(xù)測(cè)試罩扇,從而減少了人工錯(cuò)誤。但是,請(qǐng)記住喂饥,自動(dòng)化測(cè)試和測(cè)試自動(dòng)化稍有不同消约。通過測(cè)試自動(dòng)化,確保通過管道進(jìn)行整個(gè)交付過程的速度和效率员帮。自動(dòng)化測(cè)試可以自動(dòng)化或粮,傳統(tǒng)的測(cè)試方法可以自動(dòng)化管理和跟蹤不同測(cè)試的整個(gè)過程。連續(xù)測(cè)試包括自動(dòng)化測(cè)試和自動(dòng)化測(cè)試捞高,以保持質(zhì)量和速度氯材。自動(dòng)化測(cè)試是連續(xù)測(cè)試的子集,不應(yīng)將它們混淆硝岗。

DevOps中連續(xù)測(cè)試的挑戰(zhàn)

  • 一次性巨額投資:構(gòu)建測(cè)試環(huán)境和建立自動(dòng)化框架需要大量的專業(yè)知識(shí)和精力浓体。獲得測(cè)試自動(dòng)化范圍的最大困難是與建立有效的自動(dòng)化框架相關(guān)的時(shí)間和成本。為了實(shí)現(xiàn)測(cè)試自動(dòng)化項(xiàng)目辈讶,JIRA, Asana等全面的測(cè)試管理平臺(tái)簡(jiǎn)化了此過程娄猫。
  • 測(cè)試廣泛的復(fù)雜體系結(jié)構(gòu):現(xiàn)代應(yīng)用程序廣泛分布贱除,敏捷和并行開發(fā)流程的采用正在增加,端到端功能測(cè)試通常要求訪問第三方服務(wù)或大型機(jī)媳溺,這些服務(wù)或大型機(jī)僅可用于容量有限或在不方便的時(shí)間月幌。可以通過使用服務(wù)虛擬化模擬缺少或不存在依賴項(xiàng)的AUT(被測(cè)應(yīng)用程序)交互來解決此問題悬蔽。它還可以用于確保各種測(cè)試運(yùn)行中的數(shù)據(jù)扯躺,性能和行為是一致的。
  • 不可擴(kuò)展的測(cè)試套件:團(tuán)隊(duì)避免進(jìn)行連續(xù)測(cè)試的另一個(gè)原因是其基礎(chǔ)架構(gòu)的可伸縮性不足以連續(xù)運(yùn)行測(cè)試套件蝎困。通過將測(cè)試集中于公司的優(yōu)先級(jí)录语,拆分測(cè)試基礎(chǔ)并將測(cè)試與應(yīng)用程序發(fā)布自動(dòng)化工具并行化,可以解決此問題禾乘。
  • 團(tuán)隊(duì)之間缺乏協(xié)調(diào):尋找合適的熟練自動(dòng)化專家也是一項(xiàng)挑戰(zhàn)澎埠。DevOps中的連續(xù)測(cè)試要求產(chǎn)品經(jīng)理,開發(fā)人員和測(cè)試人員之間進(jìn)行高度協(xié)調(diào)始藕。協(xié)調(diào)是大多數(shù)公司奮斗的領(lǐng)域蒲稳。自古以來,它們之間就存在文化上的脫節(jié)伍派。質(zhì)量檢查團(tuán)隊(duì)處于孤立狀態(tài)江耀,可以通過適當(dāng)?shù)膯T工敬業(yè)度策略和意識(shí)來解決。

成功在DevOps中進(jìn)行連續(xù)測(cè)試的主要說明

  • 創(chuàng)建強(qiáng)大的用戶故事:持續(xù)測(cè)試意味著從一開始就進(jìn)行質(zhì)量和粒度測(cè)試诉植。確保獲得良好的業(yè)務(wù)需求以開始開發(fā)祥国。確保用戶故事是可測(cè)試的,并具有良好的接受標(biāo)準(zhǔn)倍踪,采用更具探索性的態(tài)度進(jìn)行手動(dòng)測(cè)試可能有助于獲得良好的結(jié)果系宫。
  • 協(xié)作:從文化的角度來看索昂,如果每個(gè)人都表現(xiàn)出團(tuán)隊(duì)的素質(zhì)和合作,那么在DevOps中進(jìn)行連續(xù)測(cè)試就是成功的扩借。在開始編碼或根據(jù)需要編寫測(cè)試之前椒惨,先描述測(cè)試用例。無(wú)論如何潮罪,開發(fā)人員和測(cè)試自動(dòng)化架構(gòu)師應(yīng)共同努力康谆,以確保優(yōu)化用于測(cè)試自動(dòng)化的代碼。團(tuán)隊(duì)還可以使用Slack之類的工具來合作測(cè)試結(jié)果嫉到,以加快反饋和調(diào)試速度沃暗。
  • 保持簡(jiǎn)單和邏輯:減少不必要的測(cè)試對(duì)象,例如廣泛的測(cè)試計(jì)劃和測(cè)試用例何恶,并減少測(cè)試等待時(shí)間孽锥。測(cè)試應(yīng)該是一致的,增量的和可重復(fù)的细层;結(jié)果應(yīng)可量化且有意義惜辑。
  • 到處進(jìn)行測(cè)試:測(cè)試必須在交付管道的所有階段進(jìn)行,涵蓋整個(gè)環(huán)境的所有方面疫赎,無(wú)論是生產(chǎn)環(huán)境還是QA環(huán)境盛撑。通過在每個(gè)階段進(jìn)行測(cè)試并不斷向開發(fā)人員提供反饋,可以幫助提高軟件開發(fā)的質(zhì)量捧搞。
  • 自動(dòng)化測(cè)試:自動(dòng)化測(cè)試對(duì)在DevOps中成功實(shí)施連續(xù)測(cè)試起著重要作用抵卫。堅(jiān)持測(cè)試自動(dòng)化金字塔,并專注于自動(dòng)化測(cè)試腳本以實(shí)現(xiàn)Web應(yīng)用程序中的最新更新至關(guān)重要胎撇。不能實(shí)現(xiàn)100%的自動(dòng)化介粘,但是您可以使過程自動(dòng)化的程度越高,執(zhí)行連續(xù)測(cè)試的速度就越快创坞。
  • 擁抱CI / CD(持續(xù)集成/持續(xù)交付):開發(fā)人員應(yīng)采用持續(xù)集成-通過每天多次將代碼集成到共享存儲(chǔ)庫(kù)(例如Bitbucket和GitHub)中碗短。當(dāng)使用CI服務(wù)器實(shí)施自動(dòng)化測(cè)試時(shí),每個(gè)構(gòu)建都會(huì)立即開始連續(xù)測(cè)試题涨。警告偎谁,無(wú)論測(cè)試結(jié)果是否通過,都可以實(shí)時(shí)直接發(fā)送給開發(fā)團(tuán)隊(duì)纲堵。通過定期集成巡雨,您可以更輕松地快速檢測(cè)和定位錯(cuò)誤。一旦完成所有測(cè)試席函,就可以毫不猶豫地將更新持續(xù)交付生產(chǎn)铐望。
  • 選擇基于GUI的API:DevOps和Agile團(tuán)隊(duì)以較短的發(fā)布周期,快速的反饋循環(huán)和頻繁的更改而工作,很難維護(hù)GUI測(cè)試正蛙。GUI測(cè)試需要更長(zhǎng)的時(shí)間來提供反饋督弓,并且需要大量的返工。對(duì)于具有多層體系結(jié)構(gòu)的現(xiàn)代應(yīng)用程序乒验,重要的是驗(yàn)證后端服務(wù)和功能路徑愚隧。API測(cè)試更穩(wěn)定,建議同樣使用锻全。GUI測(cè)試僅限于系統(tǒng)測(cè)試狂塘,移動(dòng)測(cè)試,黑盒測(cè)試鳄厌;API測(cè)試涉及許多實(shí)踐荞胡,例如單元測(cè)試,功能回歸測(cè)試了嚎,負(fù)載測(cè)試泪漂,安全測(cè)試,Web互操作性測(cè)試等等歪泳。
  • 超越自動(dòng)化的思考:就像人的大腦工作一樣窖梁,實(shí)施人工智能(AI)和設(shè)計(jì)智能機(jī)器(借助IoT,量子計(jì)算夹囚,機(jī)器人等),對(duì)交付管道的每個(gè)階段進(jìn)行啟發(fā)式思考邀窃,可以加速整個(gè)流程的發(fā)展荸哟。 SDLC。

結(jié)論

為了迅速行動(dòng)并取得更快的結(jié)果瞬捕,我們必須保證我們從一開始就制造正確的產(chǎn)品鞍历。修改產(chǎn)品以進(jìn)行錯(cuò)誤修復(fù)從來都不是一件容易的事,因?yàn)楹笃谠诠艿乐邪l(fā)現(xiàn)的缺陷修復(fù)成本很高肪虎。相反劣砍,必須采用正確的方式進(jìn)行測(cè)試,并使用同步的交付過程(CI / CD扇救,DevOps)刑枝,測(cè)試方法(API測(cè)試,服務(wù)虛擬化)迅腔,穩(wěn)定的測(cè)試平臺(tái)以及自動(dòng)化測(cè)試的功能和非功能方面装畅。

將團(tuán)隊(duì)之間傳統(tǒng)的脫節(jié)融合在一起,測(cè)試人員和開發(fā)人員可以學(xué)習(xí)并執(zhí)行具有適當(dāng)專業(yè)知識(shí)的成功自動(dòng)化腳本沧烈,并輕松優(yōu)化軟件體系結(jié)構(gòu)掠兄。

DevOps中的連續(xù)測(cè)試是持續(xù)質(zhì)量的主要方法(并非唯一方法)。這是通過持續(xù)交付向更高質(zhì)量產(chǎn)品邁出的一步。

一旦在DevOps中實(shí)現(xiàn)了連續(xù)測(cè)試蚂夕,就會(huì)出現(xiàn)一個(gè)理想的機(jī)會(huì)迅诬,可以考慮采用不同的方法,這些方法不包括運(yùn)行測(cè)試以識(shí)別缺陷或問題婿牍,而是可以防止編碼侈贷。這樣,鼓勵(lì)開發(fā)人員從一開始就構(gòu)建無(wú)缺陷的最佳產(chǎn)品牍汹。

技術(shù)類文章精選

非技術(shù)文章精選

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铐维,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子慎菲,更是在濱河造成了極大的恐慌嫁蛇,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件露该,死亡現(xiàn)場(chǎng)離奇詭異睬棚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)解幼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門抑党,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撵摆,你說我怎么就攤上這事底靠。” “怎么了特铝?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵暑中,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我鲫剿,道長(zhǎng)鳄逾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任灵莲,我火速辦了婚禮雕凹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘政冻。我一直安慰自己枚抵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布明场。 她就那樣靜靜地躺著俄精,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榕堰。 梳的紋絲不亂的頭發(fā)上竖慧,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天嫌套,我揣著相機(jī)與錄音,去河邊找鬼圾旨。 笑死踱讨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的砍的。 我是一名探鬼主播痹筛,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼廓鞠!你這毒婦竟也來了帚稠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤床佳,失蹤者是張志新(化名)和其女友劉穎滋早,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砌们,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杆麸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浪感。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昔头。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖影兽,靈堂內(nèi)的尸體忽然破棺而出揭斧,到底是詐尸還是另有隱情,我是刑警寧澤峻堰,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布未蝌,位于F島的核電站,受9級(jí)特大地震影響茧妒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜左冬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一桐筏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拇砰,春花似錦梅忌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瑰枫,卻和暖如春踱葛,著一層夾襖步出監(jiān)牢的瞬間丹莲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工尸诽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甥材,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓性含,卻偏偏與公主長(zhǎng)得像洲赵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子商蕴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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