国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于頁面對象的Web應(yīng)用測試用例生成方法

2020-03-06 12:56:00王曙燕鄭佳妮孫家澤
計算機應(yīng)用 2020年1期
關(guān)鍵詞:測試用例頁面對象

王曙燕,鄭佳妮,孫家澤

(西安郵電大學(xué) 計算機學(xué)院,西安710121)

0 引言

隨著客戶端更豐富的用戶交互和后端的大量Web服務(wù)的發(fā)展,Web應(yīng)用的質(zhì)量問題也日漸受到關(guān)注。測試用例生成是軟件測試中最耗費人力的任務(wù)之一,對測試的有效性和效率至關(guān)重要。

現(xiàn)代Web應(yīng)用程序采用多層體系結(jié)構(gòu),需要端到端測試技術(shù)來確保Web應(yīng)用程序的整體行為[1]?;谀P偷臏y試用例生成方法通過構(gòu)建被測應(yīng)用的行為模型,根據(jù)不同的測試需求和覆蓋準(zhǔn)則,遍歷模型生成測試路徑并耦合模擬數(shù)據(jù)進而生成測試用例,在Web應(yīng)用自動化測試領(lǐng)域具有重要的研究意義[2]。

基于模型的測試方法中使用的模型有:導(dǎo)航模型、有限狀態(tài)機(Finite Stete Machine, FSM)模型以及擴展有限狀態(tài)機(Enhanced Finite State Machine, EFSM)模型、統(tǒng)一建模語言(Unified Modeling Language, UML)圖模型等。文獻[3]定義了Web應(yīng)用模式并構(gòu)造其關(guān)系圖以建立路徑生成圖,提出一種測試路徑生成方法。文獻[4]在該關(guān)系圖的基礎(chǔ)上,提出了一種基于狀態(tài)遷移的Web應(yīng)用功能測試用例生成方法,構(gòu)造頁面狀態(tài)遷移圖(State Transition Diagram of Pages, STDP)、事件遷移表和導(dǎo)航遷移表對Web應(yīng)用的鏈接關(guān)系進行表示,并結(jié)合事件遷移表和導(dǎo)航遷移表中的信息記錄構(gòu)造測試用例,有效提高了錯誤檢測率,但該方法生成的測試路徑存在冗余的情況。文獻[5]中提出了一種以UML建模應(yīng)用行為以生成測試用例的方法,文獻[6]中提出了一種基于有限狀態(tài)機的測試生成與約束相結(jié)合的方法,有效減少使用FSM時的狀態(tài)爆炸,但FSM建模的抽象范圍會受到一定的限制。

文獻[7]中提出了一種通過自動動態(tài)分析Web應(yīng)用中用戶界面狀態(tài)的更改來推斷出導(dǎo)航路徑和狀態(tài)機,可用于動態(tài)Web測試,但是輸入策略的隨機性導(dǎo)致無法完整爬取整個應(yīng)用,模型也存在狀態(tài)空間爆炸的問題,重復(fù)爬取頁面產(chǎn)生冗余狀態(tài)會生成無效測試用例。頁面對象設(shè)計模式[8]廣泛用于Web測試中,降低網(wǎng)頁的測試代碼生成和維護成本,即在網(wǎng)頁和測試代碼之間引入了一個中間層對網(wǎng)頁元素所在頁面進行有意義的抽象,使得測試代碼僅包含測試邏輯代碼。為了減小Web應(yīng)用導(dǎo)航圖規(guī)模,文獻[9]中提出了一種動態(tài)Web應(yīng)用程序的自動測試生成技術(shù),通過自動生成頁面對象有效地將測試代碼與網(wǎng)頁分離,基于頁面對象執(zhí)行迭代反饋定向隨機測試用例生成。由于使用一個頁面對象來抽象每個單獨網(wǎng)頁的用戶界面,沒有考慮頁面對象抽象范圍對Web測試有效性的影響。文獻[10]將頁面對象移動到狀態(tài)級別,通過UML狀態(tài)圖轉(zhuǎn)換為遷移樹的形式,利用狀態(tài)頁面對象設(shè)計測試場景,并將遷移樹根節(jié)點到葉子節(jié)點的路徑作為測試路徑進一步生成測試用例。

一種新型深部調(diào)驅(qū)用無機復(fù)合轉(zhuǎn)向劑的研制及性能評價……………………………………………………………(4):62

針對以上問題,本文提出了一種基于頁面對象的Web應(yīng)用測試用例生成方法,針對被測Web應(yīng)用進行功能測試塊分析,并對可復(fù)用功能塊定義功能頁面對象,根據(jù)導(dǎo)航頁面對象(Page Objects,POs)對Web應(yīng)用進行建模,生成頁面對象導(dǎo)航圖,并結(jié)合圖的廣度優(yōu)先遍歷以及最短路徑算法提出頁面對象圖算法(Page Object Graph Algorithm, POGA)遍歷導(dǎo)航圖提取測試路徑集,進而生成可直接執(zhí)行的測試用例。該方法不僅約簡了Web應(yīng)用模型的狀態(tài)數(shù)量,還消除了測試路徑的冗余,降低了測試成本。此外,由于細化Web頁面的抽象范圍,提高了頁面對象的復(fù)用率。

1 頁面對象導(dǎo)航圖方法總體流程

測試用例的生成過程主要包括4個部分:原始頁面對象分類、構(gòu)建Web應(yīng)用導(dǎo)航圖、測試路徑集提取、測試用例生成。頁面對象導(dǎo)航圖生成測試用例方法流程如圖1所示。

圖1 測試用例生成方法流程Fig. 1 Flow chart of test case generation method

步驟1 原始頁面對象分類。分析Web應(yīng)用的待測功能,并編寫頁面對象類,用方法封裝元素操作。定義導(dǎo)航頁面對象類和功能頁面對象類。

步驟2 構(gòu)建Web應(yīng)用導(dǎo)航圖。以導(dǎo)航頁面對象作為圖的節(jié)點、導(dǎo)航方法作為圖的邊構(gòu)建Web應(yīng)用導(dǎo)航圖。

步驟3~4 測試路徑集提取。采用POGA遍歷導(dǎo)航圖,提取測試路徑集,并根據(jù)每條路徑的參數(shù)列表產(chǎn)生模擬數(shù)據(jù)。

步驟5 測試用例生成。提取測試路徑,初始化頁面對象類,生成可執(zhí)行的測試用例。

1.1 原始頁面對象分類

異步Javascript和XML(Asynchronous Javascript And XML, AJAX)技術(shù)在當(dāng)前Web開發(fā)中應(yīng)用廣泛,編寫相應(yīng)的頁面對象時不同于傳統(tǒng)網(wǎng)站[11-12],本文使用頁面對象類生成工具對被測Web應(yīng)用生成原始頁面對象,再進行Web應(yīng)用功能塊分析,將原始頁面對象進行分類,以Github上的開源網(wǎng)站litemall小商城后臺管理員系統(tǒng)作為本文方法演示案例,由于單網(wǎng)頁應(yīng)用頁面模板渲染的特點,對于任何改變DOM結(jié)構(gòu)的操作都認為是新操作來重新生成測試用例會浪費相當(dāng)?shù)臅r間和人力[13-14]。在用戶管理模塊下會員管理和收貨地址兩個子模塊中,由于使用了同一頁面模板,僅表單輸入文本內(nèi)容不同,因此可將查找功能點作為一個功能頁面對象類,并在其中封裝查找的抽象方法,在頁面導(dǎo)航時僅需調(diào)用查找頁面對象類查找方法即可。如圖2所示,兩個導(dǎo)航頁面對象UserPage、AddressPage,SearchPage為查找功能頁面對象。

國內(nèi)學(xué)者主要從科技人才集聚、人才集聚效應(yīng)、人才集聚環(huán)境等方面對人才集聚進行研究。盛亞、于卓靈(2015),從浙江省現(xiàn)有人才政策對科技人才集聚的影響進行實證分析,提出浙江省進一步有效實現(xiàn)區(qū)域人才集聚的政策建議。牛沖槐、賀召賢、張永紅(2010),從政策引導(dǎo)調(diào)控科技型人才流向、建立和完善人才流動法律框架、建設(shè)良好的基礎(chǔ)設(shè)施等角度提高人才集聚的吸引力,從而保證科技型人才的供給基礎(chǔ)。張同全(2008),從人才集聚規(guī)模、人才流動的特點等方面,建立了人才集聚效應(yīng)評價體系。

圖2 功能頁面對象示例圖Fig. 2 Function page object example diagram

1.2 構(gòu)建Web應(yīng)用導(dǎo)航圖

但這并沒有阻止人們拯救洛麗塔的決心,人們擁向海洋館,手里拿著一面自制的旗幟,呼吁游客抵制觀看洛麗塔的表演,“它已經(jīng)很累了,難道我們要為滿足自己欲望讓它無休止地演出嗎?”

生態(tài)城市是在世界上出現(xiàn)嚴(yán)重的環(huán)境問題以及資源短缺問題之后提出的,是以生態(tài)學(xué)作為理論基礎(chǔ),圍繞整個城市生態(tài)系統(tǒng)進行研究,通過對系統(tǒng)工程技術(shù)、生物技術(shù)、環(huán)境工程技術(shù)等等較為先進的技術(shù)手段,對人與自然環(huán)境之間的關(guān)系進行分析和處理,從而更好的去解決城市在發(fā)展過程當(dāng)中所出現(xiàn)的問題,對自然界的資源進行科學(xué)、合理的運用和保護,對已經(jīng)受損的生態(tài)系統(tǒng)進行修復(fù),從而建立人與自然持續(xù)發(fā)展的城市。通過對生態(tài)城市的內(nèi)涵進行分析,實際上是和人們的生活息息相關(guān)的,使人們所追求的理想城市狀態(tài)。

導(dǎo)航圖以及頁面對象定義如下。

由于頁面對象設(shè)計模式具有良好的封裝性,且當(dāng)前頁面對象返回下一頁面對象[15-16],功能頁面對象使用UML類圖進行表示,如圖3所示為根據(jù)算法1所生成的案例網(wǎng)站部分導(dǎo)航圖,加粗的遷移邊代表閉環(huán)或自環(huán)現(xiàn)象。

定義1 導(dǎo)航頁面對象(POs)。導(dǎo)航頁面對象類中定義導(dǎo)航方法,導(dǎo)航方法使用功能頁面對象中封裝的元素操作方法,構(gòu)成導(dǎo)航方法集合Methods,其中,(POi,POj)∈POs,POi、POj是頁面對象集合中兩個任意的頁面對象類,mi∈Methods是POi中定義的導(dǎo)航方法,返回頁面對象類POj。

定義2 頁面對象導(dǎo)航圖(Page Object Graph,POG)。每個導(dǎo)航頁面對象類中的導(dǎo)航方法顯式指定了待返回的下一個頁面對象類,由生成的頁面對象集合POs,構(gòu)建導(dǎo)航圖POG=〈N,E〉,其中,N是節(jié)點集合,映射為頁面對象集合POs,E表示有向邊集合,映射為導(dǎo)航方法集合Methods,其元素eij=(Ni,Nj)∈E,其中Ni、Nj∈N,eij表示從節(jié)點Ni轉(zhuǎn)換到節(jié)點Nj,映射為頁面對象中的一個導(dǎo)航方法m。

步驟2 讀取步驟1獲取的POs,循環(huán)訪問每一個節(jié)點,提取代表節(jié)點的頁面對象類中所有導(dǎo)航方法,并存入邊集合E中,以字典dic表示導(dǎo)航方法與頁面對象的映射關(guān)系,第i個節(jié)點的導(dǎo)航方法集合表示形式為dic[N[POi]]=E。

注意到,只有作為永久性資源才與時間相關(guān),只有長時間存在的資源才會發(fā)生某些分配方法的資源非單調(diào)性(例如席位分配的哈密頓法不滿足席位單調(diào)性[2]);反之,對于暫存性資源,人們往往對一次性分配僅僅關(guān)注是否與應(yīng)得份額接近(緊鄰性).由此可見,資源分配的寬約束模型適用于永久性資源的分配,緊約束模型適用于暫存性資源的分配.

算法1 Web應(yīng)用導(dǎo)航圖生成算法。

輸入:頁面對象類文件page.py;

輸出:頁面對象導(dǎo)航圖POG。

步驟1 讀取頁面對象類文件page.py,獲取BasePage的所有子類,加入節(jié)點集合N。

下面給出Web應(yīng)用導(dǎo)航圖生成算法。

由雙比值判別法可知,對于正項級數(shù),如果,則當(dāng)時,級數(shù)收斂;當(dāng)時,發(fā)散.對于級數(shù),,故雙比值判別法在判斷級數(shù)的斂散性時不適用.但當(dāng)時,定理1中的,此時由定理1可判定級數(shù)收斂;當(dāng)時,定理1中的,此時由定理1可判定級數(shù)發(fā)散.所以,能用雙比值判別法判斷斂散性的級數(shù)亦可用定理1來判斷其斂散性.類似可知,對于通項遞減的正項級數(shù),能用雙比值判別法判斷其斂散性時亦可用定理2判斷其斂散性.但反之不成立.

步驟3 分析每一個導(dǎo)航方法返回的頁面對象類存入字典dic_next中,表示為dic_next[mi]=POj。

es={login(),goto_passwd(),modify_passwd(),

對于dic中每一個頁面對象類,構(gòu)造二維頁面對象字典dic_po表示當(dāng)前頁面對象與下一個頁面對象的映射關(guān)系dic_po[POi][mi]=POj。

ITC[16]源于劍橋大學(xué)校園學(xué)生軌跡的可視化實驗,是達特茅斯學(xué)院歸檔的無線自組織通信數(shù)據(jù)集之一,具體信息如表1所示.

步驟5 讀取步驟4中的圖字典dic_po,輸出Web應(yīng)用導(dǎo)航圖。

圖3 頁面導(dǎo)航圖Fig. 3 Page navigation graph

2 測試路徑集提取

為了優(yōu)先提取測試路徑集,更好地設(shè)計測試用例[17],測試路徑在圖中表示為當(dāng)前頁面對象到達另一頁面對象的最短路徑,因此遍歷POG生成的測試用例即為初始節(jié)點到目標(biāo)節(jié)點的邊序列[18],即導(dǎo)航方法序列,可以得到測試路徑集pathG=〈ns,es,pr〉,其中ns為節(jié)點集合,es為邊集合,pr為輸入?yún)?shù)列表。其中p1,p2,…,pi表示測試路徑集pathG中的每一條測試路徑。下面給出POG的遍歷算法即POGA。

算法2 POGA。

由表17可知,企業(yè)的流動比率、速動比率都不高,增減幅度不大,但在2014~2016年四年間企業(yè)資產(chǎn)的流動比率和速動比率一直處于下降,直到2017年,才開始逐漸上升,說明企業(yè)資產(chǎn)的流動性不強,短期償債能力總體來說處于弱勢,但2017年其流動比率和速動比率相較于之前是處于增加的狀態(tài),有逐漸增強的趨勢。

輸入:Web應(yīng)用導(dǎo)航圖POG。

輸出:測試路徑集合pathGS。

P12:ns={LoginPage,HomePage,BrandPage},

P13:ns={LoginPage,HomePage,BrandPage},

步驟3 依次循環(huán)訪問dic_po中{mi:Nj},若Nj未被訪問過,將該節(jié)點放入隊列queue隊尾并返回步驟2。若Ni=Nj,則屬于節(jié)點自環(huán)情況,進入步驟4;若Nj在visited中,且Nj只出現(xiàn)過一次,則表示閉環(huán)情況,進入步驟5;若Nj不在list中,則表示終止節(jié)點,則測試路徑path=mi。

步驟4 調(diào)用步驟1中find_shortest_path,其中參數(shù)start=N0,end=Nj:節(jié)點序列ns=find_shortest_path(POG,N0,Nj)+[Nj]。

步驟5 參數(shù)start=N0,end=Nj,節(jié)點序列ns=[N0,Ni,Nj]。

步驟6 重復(fù)步驟2中生成的路徑path加入測試路徑集合pathGS中,輸出pathGS。

根據(jù)POGA,一共可以得到如下12條路徑:

P1:ns={LoginPage,HomePage,UserPage,UserPage},

es={login(),goto_user(),add_user()},

pr={(username,passwd),(name,telenum)}

P2:ns={LoginPage,HomePage,UserPage,UserPage},

es={login(),goto_user(),search_user()},

pr={(username,passwd),(name,telenum)}

P3:ns={LoginPage,HomePage,LoginPage},

es={login(),logout()},

pr={(username,passwd)}

P4:ns={LoginPage,HomePage,GoodPage,CreatePage},

es={login(),goto_good(),add_good()},

pr={(username,passwd),(good_num,good_name,price)}

P5:ns={LoginPage,HomePage,GoodPage,GoodPage},

從CNKI中文獻,可以看出白花前胡研究主題包含多個方面,從種質(zhì)資源到臨床應(yīng)用都有涉及,以化學(xué)成分研究文獻比重最大,有18篇,占總文獻量的12.58%,主要為白花前胡化學(xué)成分對離體血管的作用,早期抽薹對白花前胡根化學(xué)成分的影響,以及較深入研究了河南產(chǎn)白花前胡的化學(xué)成分。藥理作用研究文獻有4篇,主要研究了白花前胡及其有效成分甲素的抗心律失常及抗心肌缺血作用。臨床觀察有1篇,研究了白花前胡劑可有效改善缺血性中風(fēng)患者的臨床癥狀。提取工藝研究文獻有6篇,鑒定技術(shù)1篇,炮制工藝研究文獻1篇,種質(zhì)資源與栽培技術(shù)研究文獻各1篇,資源調(diào)查研究文獻2篇。

es={login(),goto_good(),search_good()},

pr={(username,passwd),(good_num,good_name)}

P6:ns={LoginPage,HomePage,GoodPage,GoodPage},

es={login(),goto_good(),delete_good()},

由圖4和圖6可以看出,攝像頭采集到的并行數(shù)據(jù)先傳入兩個級聯(lián)的OSERDES2中進行串化,之后通過LVDS信號進入兩個級聯(lián)的ISERDES2中進行數(shù)據(jù)的解碼,最后傳出8位并行數(shù)據(jù)。

pr={(username,passwd)}

P7:ns={LoginPage,HomePage,GoodPage,ItemPage},

es={login(),goto_good(),edit_good()},

pr={(username,passwd),(good_num,good_name,price)}

P8:ns={LoginPage,HomePage,ModifyPasswdPage,HomePage,LoginPage},

步驟4 讀取步驟2生成的dic和步驟3生成的dic_next,

logout()},

pr={(username,passwd),(passwd,newpasswd)}

P9:ns={LoginPage,HomePage,GoodPage,EditPage},

es={login(),goto_good(),edit_good()},

pr={(username,passwd),(good_num,good_name,price)}

由于模型中已將車頭及輪胎化簡,為減小仿真誤差,需將其質(zhì)量及摩擦力附加在模型中[4-5]。摩擦力和慣性力產(chǎn)生于碰撞瞬間、運輸車狀態(tài)發(fā)生改變的時刻,故可以統(tǒng)一換算成阻力。后輪與地面的阻力F1和前方牽引銷處的阻力F2可表示為

春夏秋冬四季更替,帶來萬物生長不變的輪回。冬季以寒冷、干燥為主,同時每逢冬季霧霾情況也會逐漸加重,而冬季洗衣最常遇到的問題就是洗衣很難快速干燥,霧霾、保暖原因讓你更加無法開窗通風(fēng)加快衣物干燥,洗烘一體機就成為冬季解決洗衣難最好的方式之一。洗烘一體機集合洗衣機、烘干機兩大功能,不額外增加占地面積,快速干衣功能也滿足了人們對于潔凈新衣的需求,辭舊迎新,近一年中有哪些洗烘一體機值得我們關(guān)注呢?

P10:ns={LoginPage,HomePage,TopicPage,TopicPage},

es={login(),goto_topic(),search()},

pr={(username,passwd),(title,sub_title)}

P11:ns={LoginPage,HomePage,TopicPage,TopicCreatePage},

es={login(),goto_topic(),add_topic()},

pr={(username,passwd),(title,sub_title)}

步驟1 訪問POG的初始頁面對象節(jié)點N0,并將N0加入已訪問列表中,建立一個隊列queue以及已訪問集合visited,并初始化queue=[N0],visited={}。

es={login(),goto_brand(),add_brand()},

pr={(username,passwd),(brand_name,brand_info)}

研究區(qū)的溫泉主要分布于瓦廠上至龍布溝之間約8 km的雅拉河谷地中,泉眼多出露于河漫灘與階地上。瓦廠上出露的溫泉分布于雅拉河?xùn)|岸,其中部分泉眼被開發(fā)利用,中谷村溫泉分布較為密集,雅拉河?xùn)|西兩岸均有分布,西岸分布有若干泉群,每個泉群有若干泉眼;大蓋、龍布的溫泉多分布于雅拉河西岸,雅拉藥泉位于雅拉河與其支流的交匯處,有較濃的H2S氣味。

es={login(),goto_brand(),search_brand()},

pr={(username,passwd),(brand_id,brand_name)}

3 測試用例生成

為了保證測試路徑的可達性,要求輸入的參數(shù)值滿足導(dǎo)航方法中要求的參數(shù)約束。本文將測試路徑集中提取的參數(shù)列表根據(jù)業(yè)務(wù)場景分類[19],采用Python的第三方庫Faker生成模擬數(shù)據(jù)用于測試用例中表單數(shù)據(jù)填充。

由于得到的測試路徑集中存在重復(fù)功能測試塊,生成測試用例集時需要進一步約簡,測試路徑P2、P5、P9、P12均為查找功能的測試路徑。為了驗證該功能只需要一個測試用例,根據(jù)pathGS最終生成9個測試用例。測試用例的生成步驟為:

1)從pathGS中提取一條測試路徑,讀取測試路徑上的節(jié)點序列,并創(chuàng)建當(dāng)前頁面對象的瀏覽器實例。

2)調(diào)用當(dāng)前頁面對象中的導(dǎo)航方法,提取導(dǎo)航方法中的參數(shù)列表。

3)傳入?yún)?shù)值,并進行待返回頁面對象的瀏覽器實例創(chuàng)建。

4)頁面斷言,驗證是否到達下一導(dǎo)航頁面對象以驗證導(dǎo)航方法的正確性。

以路徑P1為例,本案例采用默認管理員的認證信息,即username和passwd是admin123,測試用例的生成步驟如下:

class TestLitemall(WebAppTest):

#前置條件,用戶登錄

def setUp(self):

super(TestLitemall,self).setUp()

self.login_page=LoginPage(self.browser)

self.login_page.visit().login("admin123","admin123")

def test_add_user(self):

#頁面對象類實例化

self.home_page=HomePage(self.browser)

self.user_page=UserPage(self.browser)

self.list_page=UserListPage(self.browser)

self.home_page.goto_user()

self.user_page.add_user("zhengjiani","11111111")

results=self.list_page_search_user("zhengjiani","11111111")

# 測試預(yù)言

assert "zhengjiani" in results

4 實驗結(jié)果與分析

4.1 實驗設(shè)置

為了說明本文方法的可行性,本實驗利用Python語言實現(xiàn)所提出的Web應(yīng)用導(dǎo)航圖構(gòu)建算法以及POGA,統(tǒng)計構(gòu)成Web應(yīng)用導(dǎo)航圖的規(guī)模大小以及測試路徑集的相關(guān)信息來進行實驗分析。

本文實驗選取兩個開源程序作為被測Web應(yīng)用,其詳細描述如表1,LOC(Line Of Code)是軟件規(guī)模代碼行數(shù),petclinic是文獻[12]中的基準(zhǔn)程序,Addressbook作為文獻[13]被測對象,無論是頁面對象研究領(lǐng)域還是Web應(yīng)用測試領(lǐng)域都具有一定的代表性。通過與文獻[7]中Crawljax工具和文獻[4]STDP圖進行規(guī)模對比、與文獻[4]生成的Web應(yīng)用測試路徑集以及測試用例數(shù)進行對比分析、并將分類前后頁面對象的功能復(fù)用率進行對比,從多個角度評估基于頁面對象生成Web測試用例的有效性。為了保證在較為公平的實驗環(huán)境下進行對比分析,在采用Crawljax工具進行爬取時,識別標(biāo)簽均采用默認元素,即鏈接以及按鈕

常山县| 盘山县| 梁河县| 苍梧县| 马公市| 南乐县| 喀喇沁旗| 田东县| 大同市| 扶绥县| 鸡泽县| 海宁市| 汉源县| 加查县| 嘉峪关市| 清苑县| 望江县| 金川县| 贵定县| 丹凤县| 酒泉市| 新乐市| 泽普县| 信阳市| 德安县| 明星| 华容县| 湖州市| 建水县| 铜山县| 永德县| 枣阳市| 澄江县| 布尔津县| 云安县| 宣武区| 寻乌县| 中方县| 青州市| 盐城市| 通道|