天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

VS2010測試功能之旅:編碼的UI測試(3)-操作對象的識別原理

  回顧 

  在之前的兩章分別介紹了一個簡單的示例操作動作的錄制原理通過修改UIMap.UItest文件控制操作動作代碼的生成。想必大家對編碼的UI測試操作動作的錄制應該有一定了解了,在UI操作中,操作動作總是離不開具體的操作對象,例如點擊,拖動,填寫值等操作,總是要對文本框,或者按鈕,窗體這些對象進行操作,不是憑空生成的。本章作為入門篇的最后一章,將會說明編碼的UI測試是如何識別這些對象的,并介紹UIMap.UItest文件是如何生成對象識別代碼。

  對象的識別原理

  之前我們錄制的時候,錄制生成器解析了我們的操作對象,并且為我們生成了對象識別代碼(也就是UIMap.UItest下<Map>節點的那部分),以便我們在回放的時候,能夠識別到我們要操作的是哪一個對象。

  在編碼的UI測試中,對象的識別主要是同時按以下三個方面進行。

  1. 按對象類別:對象屬于什么類別,例如是button還是textBox 。

  2. 按關鍵標識屬性:能唯一識別該對象的屬性 。

  3. 按層級關系:對象在其父對象中的層次 。

  下面開始進行詳細介紹: 

  一、按對象類別:  

  為便于理解,以web程序為例,假設我們的識別代碼中,寫明讓VS2010按WebButton識別一個對象,那么VS2010則會在頁面源碼中只找到那些html標簽是<input type=“submit”>的控件,如果識別代碼中描寫的是按WebLink識別對象,則VS2010只在頁面源碼中找到那些是<a>的標簽。 

  二、按關鍵標識屬性:

  通過對象類別,已經能識別出來某一類的對象,在這個基礎上,接下來就需要用關鍵識別屬性進行精準標識了,我們需要找出能唯一識別該對象的屬性,假如一個窗體如下。

  這個窗體中包含了3個button,我們想讓VS2010操作到第一個Button,如何區分這些Button呢?這就要用到關鍵標識屬性來標識唯一一個對象。

  關鍵標識屬性分為兩種----自身標識屬性和輔助標識屬性。 

  1、自身標識屬性: 

  也就是屬于對象的屬性,例如,button擁有Name,Text,Enable,BackColor等屬性,我們假設上面那個窗體的Button的各個屬性如下。

  很明顯可以發現,第一個button的Name屬性和和其他的button不一樣,那么可以用其作為他的關鍵標識屬性,并且寫在識別代碼中,這樣vs2010就可以在這些button中能唯一識別他,例如,將Name=button2寫到識別代碼中,就可以唯一識別第二個Button。

  假設3個button的Name一樣,而BackColor不同,也可以用BackColor作為關鍵標識屬性。

  2、輔助標識屬性:

  在自動化測試中,還有一種屬性叫做輔助標識屬性,他并不屬于對象的屬性,但可以輔助標識對象。

  假設剛才那個窗體的各button屬性如下:

  可以發現他們的自身屬性都是一模一樣的,那么怎么做才能讓VS2010識別他呢?仔細觀察可以發現這樣一個情況。

  我們可以通過該對象是第幾個對象這樣的輔助屬性進行標識他。

  比如如果要識別第3個Button,則需要在識別代碼中設置其輔助標識屬性“對象序號”為3。

  三、按層級關系:

  雖然上面確定了唯一對象,的確已經可以標識出對象了,不過實際上在識別的時候還會按層級關系查找,例如第一章提到的一個簡單的窗體。

  我們用錄制生成器解析他的第一個文本框Tbx_uid,在自動生成的識別代碼中,他們的層級關系是這樣的。

  對應到剛才的Form,層級為:

  VS2010在識別這個Textbox1的時候,會只識別屬于 系統登錄Window下的Tbx_uidWindow下的Tbx_uid文本框。

  (注:按照常規的理解,其實應該“系統登錄窗體”和“Tbx_uid文本框”只有兩個層級,也就是窗體下直接就是文本框,但是VS2010默認解析的時候,會把一個TextBox解析成兩個層級,分為TextBoxWindow和TextBoxEdit,結果本來應該總共只有兩級結果搞成了三級,如果仔細觀察可以發現其他控件也是這樣的,所以在這里糾結的朋友希望你們看到此段后能夠減輕些疑惑...)

  UIMap.UItest文件控制識別代碼的生成

  在第二章上部分已經提到,在UIMap.uitest文件中,對象的識別代碼的生成部分是放在<Maps>節點下的,點擊生成代碼后,會將其真正起作用的識別代碼生成到UIMap.designer.cs下,那么他們的代碼究竟是怎樣的呢?

以剛才那個窗體生成的代碼為例,我們要識別TextBox1,如果使用錄制生成器,把TextBox1填入到對象庫,我們來看看他生成的識別代碼(可以簡略看,下面會有說明)。

<Maps>
<UIMap Id="UIMap1">
<TopLevelWindows>
<TopLevelWindow ControlType="Window" Id="UI 系統登錄Window" FriendlyName="系統登錄" SpecialControlType="None" SessionId="199642">
<TechnologyName>MSAA</TechnologyName>
<WindowTitles>
<WindowTitle> 系統登錄</WindowTitle>
</WindowTitles>
<SearchConfigurations>
<SearchConfiguration>VisibleOnly</SearchConfiguration>
</SearchConfigurations>
<AndCondition Id="SearchCondition">
<PropertyCondition Name="Name"& gt;系統登錄</PropertyCondition>
<PropertyCondition Name="ClassName" Operator="Contains">WindowsForms10.Window</PropertyCondition>
<PropertyCondition Name="ControlType">Window</PropertyCondition>
</AndCondition>
<SupportLevel>0</SupportLevel>
<Descendants>
<UIObject ControlType="Window" Id="UITbx_uidWindow" FriendlyName="Tbx_uid" SpecialControlType="None">
<TechnologyName>MSAA</TechnologyName>
<WindowTitles>
<WindowTitle> 系統登錄</WindowTitle>
</WindowTitles>
<SearchConfigurations>
<SearchConfiguration>VisibleOnly</SearchConfiguration>
</SearchConfigurations>
<AndCondition Id="SearchCondition">
<PropertyCondition Name="ControlName">Tbx_uid</PropertyCondition>
<PropertyCondition Name="ControlType">Window</PropertyCondition>
</AndCondition>
<SupportLevel>0</SupportLevel>
<Descendants>
<UIObject ControlType="Edit" Id="UITbx_uidEdit" FriendlyName="Tbx_uid" SpecialControlType="None">
<TechnologyName>MSAA</TechnologyName>
<WindowTitles>
<WindowTitle> 系統登錄</WindowTitle>
</WindowTitles>
<SearchConfigurations>
<SearchConfiguration>VisibleOnly</SearchConfiguration>
</SearchConfigurations>
<AndCondition Id="SearchCondition">
<PropertyCondition Name="Name"& gt;密碼 :</PropertyCondition>
<PropertyCondition Name="ControlType">Edit</PropertyCondition>
</AndCondition>
<SupportLevel>0</SupportLevel>
<Descendants />
</UIObject>
</Descendants>
</UIObject>
</Descendants>
</TopLevelWindow>
</TopLevelWindows>
</UIMap>
</Maps>

NET技術VS2010測試功能之旅:編碼的UI測試(3)-操作對象的識別原理,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 涩涩电影网 | 亚洲高清中文字幕 | 我把寡妇日出水好爽 | 亚洲视频成人 | 91亚洲精品 | 国产剧情麻豆mv | 久久久久久电影 | 快乐激情网| 日韩精品无码视频一区二区蜜桃 | 好好的曰com久久 | 久草色视频 | 伊人在线高清视频 | 亚洲视频中文字幕 | 69丰满少妇AV无码区 | 国产精品嫩草99AV在线 | 最近中文字幕在线看免费完整版 | 亚洲国产在线精品国自产拍五月 | 青青视频 在线 在线播放 | 99久久久精品免费观看国产 | 领导边摸边吃奶边做爽在线观看 | 91国偷自产一区二区三区 | 柠檬福利精品视频导航 | 国产麻豆剧看黄在线观看 | 国产精品97久久AV色婷婷 | WWW国产色情在线观看APP | 暖暖日本手机免费完整版在线观看 | 一区三区三区不卡 | 欧美大片免费 | 在线视频网站www色 在线视频免费国产成人 | 国产小伙和50岁熟女23p | 我与恶魔的h生活ova | 小草影院免费 | 国产亚洲精品精华液 | 亚洲日本一区二区三区在线不卡 | 国产精品青青在线麻豆 | 99热久久精品国产一区二区 | 小货SAO边洗澡边CAO你动漫 | 亚州AV中文无码乱人伦在线 | 99视频导航| 国产亚洲精品高清视频免费 | 久久成人亚洲 |