浅谈Web自动化测试原理

开发 测试 自动化
本文介绍脱离这些自动化测试框架。直接使用.NET提供的shdocvm.dll库来操作IE浏览器,使用mshtml.dll库来操作IE中的HTML对象。

  目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件,模拟用户输入,点击等操作,实现Web自动化测试。其实这些工具的原理都一样,都是通过调用IE COM接口和HTML DOM 对IE浏览器以及WEB测试对象的操作。

  本文介绍脱离这些自动化测试框架。 直接使用.NET提供的shdocvm.dll库来操作IE浏览器,使用mshtml.dll库来操作IE中的 HTML对象。

  阅读目录

  优点

  添加引用

  操作IE

  使用IE Develop Toolbar 查看HTML DOM

  操作IE中的HTML元素

  源代码下载

  优点

  通过直接操作IE COM来实现Web自动化,能让你在几分钟之内快速建立一个轻量型的自动化测试程序。 大大的提高了测试效率。 也有助于你理解WatiN这些自动化测试框架的运行原理.

  添加引用

  shdocvm.dll和mshtml.dll这两个库的COM组件名字和他们的dll名字不一样。所以比较难找。

  shdocvm.dll 的COM 组件名字叫"Microsoft Internet Controls". 添加引用如下Add References->Com Tab-> Microsoft Internet Controls

  mshtml.dll的COM组件名字叫"Microsoft.mshtml", 添加引用如下Add References-> .NET Tab->Microsoft.mshtml

添加完引用后,就可以引用命名空间了

  usingmshtml;

  usingSHDocVw;

  操作IE

  通过shdocvm.dll中的InternetExplorer对象的属性和方法, 比如Height,Width。我们能够操作IE,以便模拟一些用户的操作,比如调整浏览器的大小,刷新页面等。

 

  1.   staticvoidMain(string[] args)  
  2.   {  
  3.   InternetExplorer IE = newInternetExplorer();  
  4.   IE.Visible = true;  
  5.   objectnil = newobject();  
  6.   stringCnblogUrl = "http://www.cnblogs.com";  
  7.   //打开IE并且打开博客园主页  
  8.   IE.Navigate(CnblogUrl, refnil, refnil, refnil, refnil);  
  9.   Thread.Sleep(3000);  
  10.   //设置IE左上角的位置  
  11.   IE.Top = 10;  
  12.   IE.Left = 10;  
  13.   //设置IE的高度和宽度  
  14.   IE.Height = 800;  
  15.   IE.Width = 1000;  
  16.   //导航到百度主页  
  17.  Thread.Sleep(3000);  
  18.   stringBaiduUrl = "http://www.baidu.com";  
  19.   IE.Navigate(BaiduUrl, refnil, refnil, refnil, refnil);  
  20.   //点击后退按钮  
  21.   Thread.Sleep(3000);  
  22.   IE.GoBack();  
  23.   //刷新IE  
  24.   Thread.Sleep(3000);  
  25.   IE.Refresh();  
  26.   //关闭IE  
  27.   Thread.Sleep(3000);  
  28.   IE.Quit();  
  29.  } 

 

  使用IE develop toolbar 查看HTML DOM

  下节中我们要操作HTML中的元素, 我们先需要知道这些控件的id, 使用IE Develop Toolbar或者firebug可以方便查看控件的id.

  按F12启动IE Develop Toolbar, 或者点击IE工具栏中的Tools->Develop Tools

从图中可以看到博客园中的搜索textbox的id是"q"

  操作IE中的HTML元素

  模拟一个在博客园首页进行搜索的场景。 模拟在文本框中输入数据, 然后点击"找找看按钮"。

  我们通过mshtml.dll库里的getElementById()方法获得你要操作的HTML元素的引用。 然后你可以操作这个对象,比如输入值和点击它

  staticvoidMain(string[] args)

  {

  InternetExplorer IE = newInternetExplorer();

  IE.Visible = true;

  objectnil = newobject();

  stringCnblogUrl = "http://www.cnblogs.com";

  //打开IE并且打开博客园主页

  IE.Navigate(CnblogUrl, refnil, refnil, refnil, refnil);

  Thread.Sleep(3000);

  //获取DOM对象

  HTMLDocument doc = (HTMLDocument)IE.Document;

  //博客园主页上的搜索Textbox的id是 "q"

  HTMLInputElement SearchTextBox = (HTMLInputElement)doc.getElementById("q");

  SearchTextBox.value = "小坦克";

  //博客园主页上的"找找看"按钮的id是"btnBloggerSearch"

  HTMLInputElement SearchButton = (HTMLInputElement)doc.getElementById("btnBloggerSearch");

  SearchButton.click();

  }

  运行效果如下:

源代码下载

  点击这里,请用VS2008以上打开

  参考书籍:<.NET Test Automation Recipes>

责任编辑:彭凡 来源: 博客园
相关推荐

2011-01-20 10:17:25

ibmdwWeb

2011-06-03 17:24:48

自动化测试

2011-05-31 17:35:45

测试自动化QTP

2020-08-03 15:40:57

Web自动化工具测试

2011-06-08 17:15:46

QTP脚本

2011-11-18 09:11:21

Web

2023-09-02 20:22:42

自动化测试软件开发

2021-08-17 09:00:00

架构PythonWeb

2009-09-22 11:58:00

ibmdwWeb

2022-02-17 10:37:16

自动化开发团队预测

2014-04-16 14:15:01

QCon2014

2012-02-27 17:34:12

Facebook自动化

2021-09-03 09:56:18

鸿蒙HarmonyOS应用

2013-05-16 10:58:44

Android开发自动化测试

2022-08-05 22:15:26

Python自动化测试

2011-12-23 17:09:57

自动化测试

2021-06-30 19:48:21

前端自动化测试Vue 应用

2012-12-24 22:54:31

2023-03-27 15:37:43

自动化测试开发

2014-11-20 13:49:15

点赞
收藏

51CTO技术栈公众号