[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

  在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径。因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识。刚刚开通了博客,就从最基础的开始吧,算是写给初学者的编程手记,也算是给对自动化完全不了解的小伙伴开个头。时间允许的话会坚持更新下去... ... 后续的文章计划会谈到一些企业级自动化测试平台的构建(但愿有时间完成哈~~)。

  关于自动化测试的框架,网上有很多相关的对比,在这里我我就不评论和对比了。本人将要介绍的是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. 启动火狐浏览器。
  2. 在导航栏键入博客园本人的博客地址。
  3. 点击分类里面的“自动化测试”链接。
 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:那个啥,建议初学的小伙伴不要拿什么录制工具去录制脚本。个人觉得对你的技术没有任何帮助。。。 多的就不说了 ,自己领悟哈~~~

时间: 2024-10-08 13:30:15

[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建的相关文章

[小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory &amp; 团队构建

本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建.<Selenium For C#>系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读下来并动手实践的话,我相信你应该可以模拟日常工作中80%常见的手动测试用例了.请注意:我的用词是模拟用例,而不是书写自动化测试用例.一个企业级的自动化测试的构建不是单靠Selenium一种技术就能Hold住的.所谓模拟指的是只能实现自动化的某个Case,但是不能工程化的使用.在本人所接触过几家公司的自动化测试

[小北De编程手记] : Lesson 05 - Selenium For C# 之 API 下

上一篇,我们介绍了一些Selenium WebDriver相关的API,下面我们就接着上一篇继续介绍Selenium常用的API,这一篇的内容主要涉及到以下话题: Selenium API:复杂事件处理 Selenium API:特殊DOM元素处理 Selenium API:截图功能 Selenium API:关于框架扩展 (一)Selenium API:复杂事件处理 首先,我们试想一下这样的场景.待测试的系统支持一些组合键的操作,例如:按住Ctrl的同时点击某个表格的某个单元格,该数据行会高亮

[小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上

这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Selenium API:事件处理 Selenium API:其他操作 Selenium API:框架扩展 回顾一下我之前讲过的一个概念:所谓自动化测试,可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.从框架设计的角度来讲,一个自动化测试框架的驱动程序应该向使用者提供“元

[小北De编程手记] : Lesson 06 - Selenium For C# 之 流程控制

无论你是用哪一种自动化测试的驱动框架,当我们构建一个复杂应用程序的自动化测试的时候.都希望构建一个测试流程稳定,维护成本较低的自动化测试.但是,现实往往没有理想丰满.而这一篇,我会为大家讲解我们在使用Selenium进行Web测试的时候应该如何控制我们的测试流程,从而尽可能地提高自动化测试可维护性.那么,先看一下这一篇的内容主要涉及到的话题: 自动化测试的成本 隐式的等待同步策略 显式的等待同步策略 自定义等待同步策略(一些关于自动化框架设计的探讨) (一)自动化测试的成本 <Selenium

[小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理

在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Selenium WebDriver窗口处理相关的API.那么,还是照例先看一下本文主要涉及到的话题: 窗口处理接口:ITargetLocator 浏览器弹出窗口的处理(新页面) JavaScript弹出框的处理:Alert, Confirm, Prompt 内嵌框架的处理:Frame , iFrame

[小北De编程手记] Lesson 01 - AutoFramework构建 之 从一个简单的Demo聊起

写在最前面 这个系列的主旨是要跟大家分享一下关于自动化测试框架的构建的一些心得.这几年,做了一些自动化测试框架以及团队的构建的工作.过程中遇到了很多这样的同学,他们在学习了某一门语言和一些自动化测试的类库或者工具之后,打算进一步的提高.我想这个系列也许会帮助到你,我们一起从各个维度来看一看自动化测试框架的一些最佳实践.本人能力有限,如果有什么不正确的的地方还各位大牛指正. 聊聊自动化测试的初心 在开始具体的技术和理论之前,我们先来思考一下自动化测试的目的是什么?我简单的罗列了几点: 替代手工测试

[小北De编程手记] : Lesson 03 - Selenium For C# 之 元素定位

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就开始给大家介绍一下Selenium中是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver 和 We

[小北De编程手记] : Lesson 04 玩转 xUnit.Net 之 Fixture(下)

上一篇文章<[小北De编程手记] : Lesson 03 玩转 xUnit.Net 之 Fixture(上)>向大家介绍了xUnit.Net 共享数据的方式.Test Case的构造函数 & IDisposable.Dispose.Class级别的Fixture : IClassFixture.这一篇,我们接着讲解后面的内容,回顾一下本文要讨论的内容: xUnit.Net 共享数据的方式(上) Test Case的构造函数 & IDisposable.Dispose(上) Cl

[小北De编程手记] : Lesson 03 玩转 xUnit.Net 之 Fixture(上)

在使用xUnit.Net Framework构建单元测试或自动化测试项目的时候,无论是针对一些比较耗费资源的对象亦或是为了支持Test case预设数据的能力,我们都需要有一些初始化或是清理相关的动作.在xUnit.Net中,提供了多种方式来满足我们的需要.还是照例看一下本文要讨论的内容: xUnit.Net 共享数据的方式(上) Test Case的构造函数 & IDisposable.Dispose(上) Class级别的Fixture : IClassFixture(上) 应用程序级别的F