在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径。因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识。刚刚开通了博客,就从最基础的开始吧,算是写给初学者的编程手记,也算是给对自动化完全不了解的小伙伴开个头。时间允许的话会坚持更新下去... ... 后续的文章计划会谈到一些企业级自动化测试平台的构建(但愿有时间完成哈~~)。
关于自动化测试的框架,网上有很多相关的对比,在这里我我就不评论和对比了。本人将要介绍的是Selenium(后续也会有一些其他框架的介绍)。如果你还不知道自动化测试框架和Selenium为何物,那就请先了解一下相关的知识介绍,这里我就不再赘述了。
为什么会选择Selenium?网上也有很多相关文章谈到他的优势,比如:开源,免费,支持多种开发语言,支持多浏览器... ...等等等等。我之所以选择这个框架,主要是从框架本身的扩展性,以及团队构建自动化平台的效果方面考虑。
- 框架的扩展性:无论是Selenium本身的设计(留给自动化框架设计人员的接口),还是你使用的编程语言本身所提供强大的其他功能的扩展。给我的感觉都是棒棒哒~~~
- 自动化平台的构建:由于Selenium本身的支持很多主流的开发语言C#,Java,Ruby... ...
所以无论你是经验丰富的测试人员或是想了解自动化的开发人员。测试B/S结构的应用,Selenium无疑是一个很好的选择。
不说废话了,一般的开始都是从环境搭建来的,so ... ... 第一篇,我也简单的讲一下这些没什么营养的内容,目的是帮初次接触这玩意的小伙伴先把环境搞起来。
工具:VS2013 , Nuget(VS会自带这个工具),GitHub账号(本篇文章用不到,后续我会发代码放到GitHub上面供大家交流)
框架:Selenium(浏览器驱动) , xUnit.Net(单元测试框架)[对于为什么会选择这个单元测试框架,以后会在其他的文章中介绍,总之本人觉得很好用]
浏览器:Firefox , Chrome ,IE 都行。
Step 01: 打开你的VS2013,选择"Extensions and Updates",搜索并安装xUnit.Net 项目模板
Step 02: 新建一个xUnit.net 的单元测试项目(Demo.SeleniumTest),点击“ok”。
Step 03:右键项目的References,并选择Manager NuGet Packages... , 下载最新版本的xUnit.Net. , 以及Selenium 的驱动包。
搜索并安装最新版的xUnit.Net。
搜索并安装最新版的Selenium Driver。
Step 04:终于可以开始写代码了,这里先做了一个简单的例子(访问博客园本人的博客,刚刚开的博客加点击量~~呵呵)。至于原理都后面的文章我会介绍给大家。
新建一个测试类(UnitTesCase),并键入以下代码,代码完成了这么几个操作:
- 启动火狐浏览器。
- 在导航栏键入博客园本人的博客地址。
- 点击分类里面的“自动化测试”链接。
1 using OpenQA.Selenium; 2 using OpenQA.Selenium.Firefox; 3 using System; 4 using System.Linq; 5 using Xunit; 6 7 namespace Demo.SeleniumTest 8 { 9 public class UnitTesCase 10 { 11 /// <summary> 12 /// 访问博客园 13 /// </summary> 14 [Fact(DisplayName = "Visit.Cnblogs")] 15 public void Visit_Cnblogs() 16 { 17 IWebDriver driver = new FirefoxDriver(); 18 19 driver.Url = "http://www.cnblogs.com/NorthAlan"; 20 var lnkAutomation = driver.FindElement(By.XPath(".//div[@id=‘sidebar_postcategory‘]/ul/li/a[text()=‘自动化测试‘]")); 21 lnkAutomation.Click(); 22 } 23 } 24 }
Step 05:编译你的项目(Ctrl + Shift + B),测试方法上右键点击“Run Tests” ,就可以看见启动火狐之后的一系列操作了。代码中特意没有关闭浏览器。
总结:其实也没啥好总结的,这一篇算是给大家来个开胃小菜了,没什么营养。主要是搭建环境。
关于《Selenium For C#》 系列,我计划给大家逐一介绍一些Selenium Driver的基础知识和框架的扩展点。 当然,之后会有更多关于测试框架构以及软件构建方面的文章。愿我主保佑我有时间做这些事情... ...
PS:那个啥,建议初学的小伙伴不要拿什么录制工具去录制脚本。个人觉得对你的技术没有任何帮助。。。 多的就不说了 ,自己领悟哈~~~