一個UI自動化的小例子

發表于:2011-11-16來源:未知作者:領測軟件測試網采編點擊數: 標簽:自動化測試
隨便用一個小例子來解釋一下UI自動化的開發吧. 我先現在有一個Button是disable的狀態,一旦Button enable,我們就Click彈出一個窗口. 我們使用的測試工具就有同步的功能. 1.自動化工具生成的程序(發現和操作控件,不能真正運行)

  隨便用一個小例子來解釋一下UI自動化開發吧.

  我先現在有一個Button是disable的狀態,一旦Button enable,我們就Click彈出一個窗口.

  我們使用的測試工具就有同步的功能.

  1.自動化工具生成的程序(發現和操作控件,不能真正運行)

  button=FindButton();

  ClickButton(button);

  2.傻瓜的自動化程序(通過加入sleep變成可以運行的程序)

  button=FindButton();

  Sleep(10);

  ClickButton(button);

  Sleep(10);

  window=FindWindow();

  3.簡單的自動化程序(加入同步,使得更可靠和有效率)

  button=FindButton();

  WaitButtonEnable(button);

  ClickButton(button);

  window=WaitWindowOpen();

  4.完整的自動化程序(保證100%可靠,沒有測試程序bug,簡單寫了一下,沒有包含exception的控制,時間急,可能也會有錯誤,不過就是這個意思)

  Button button=null;

  for(int i=0;button==null&&i<3;i++) //如果FindButton不穩定,調用三次in case

  {

  button=FindButton();

  if(button==null)

  {

  Log.Error("Tryout{0}:Can not find button",i); //測試工具不穩定

  }

  else

  {

  break;

  }

  }

  if(button==null)

  {

  Log.Error("Cannot find button. Quit"); //測試工具找不到button,或者產品問題

  Log.Screen();//截圖,只是為了示例,以后不再單獨寫

  return;

  }

  if(!WaitButtonEnable(button))

  {

  if(button.Enabled==true) //測試工具問題,沒有得到enable的消息

  {

  Log.Error("enabled, but tool didn't detect");

  }

  else//測試工具問題,不能成功檢測button的狀態,或者產品問題沒有enable

  {

  Log.Error("don't enable");

  return;

  }

  Window window=null;

  for(i=0;window==null&i<3;i++)//ClickButton不穩定,或者沒有得到open event,或者產品問題

  {

  ClickButton(button);

  window=WaitWindowOpen();

  if(window==null)//沒有click或者沒有得到消息,或者產品問題

  {

  int count=0;

  findwindow://FindWindow不穩定,重試3次

  window=FindWindow();

  if(window!=null) //沒有得到消息,但是窗口彈出

  {

  Log.Error("didn't get event");

  break;

  }

  else //沒有click,或者產品問題, 或者FindWindow不穩定

  {

  Log.Error("Tryout{0}:didn't get window",i);

  count++;

  if(count>3)

  {

  }

  else //FindWindow不穩定,workaround

  {

  Log.Error("goto{0}",count);

  goto findwindow;

  }

  }

  }

  else //成功

  {

  break;

  }

  }

  if(window==null)

  {

  Log.Error("didn't get window, maybe tool or product problem.");

  return;

  }

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97