• selenium入门教程c#


    一、 简述

    1. 介绍

    Selenium是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、 Mozilla FirefoxGoogle Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性,测试系统功能。支持自动录制动作和自动生成NetJavaPerl等不同语言的测试脚本。

    2. 优势

    1. 更加逼真的模拟用户操作网页

    2. 跨平台(Windows,Linux,mac,android,IOS) ,

    3. 跨浏览器(Firefox,IE,Chrome, Opera,Safari) 

    4. 多语言支持(java,c#,python,ruby,php,perl,js) 

    5. 开源免费 

    6. 综上所述,selenium是可以个性定制的,可以适应不同团队的,不要钱的自动化web测试工具 

    3.  Selenium与QTP

    共同特征

    1. 都可以进行Web测试 

    2. 都支持录制回放 

    3. 两者录制的脚本都有较差的兼容性,都需要有经验的开发人员进行调整。 

    QTP的优势 

    1. QTP 功能很完善,界面很强大。还对window等其他程序的支持 

    2. QTP录制功能强大,而Selenium IDE只是一个火狐插件,功能有限。 

    3. QTP有对象库,方便我们管理对象,而selenium只能进行编码维护,或者自己编写界面。 

    4. QTP有非常优秀的测试报告,Selenium自己没有,需要集成其他报表产品(比如结合JUnit) 

    5. QTP对测试人员的要求低,Selenium不会编程能做的事情有限。     

    Selenium的优势

    1. 用户仿真:Selenium在浏览器后台执行,它通过修改HTMLDOM(文档对象模型)来执行操作,实际上是通过 javascript来控制的。执行时窗口可以最小化,可以在同一机器执行多个测试。而QTP完全模拟终端用户,独占屏幕,只能开启一个独占的实例。 

    2. Selenium一个机器可以跑多种脚本,但QTP独占模式必须要大量测试机器。 

    3. 浏览器支持。 Selenium支持IE, Firefox, SafariOpera,QTP仅支持IEFirefox。 

    4. Selenium2 是完全面向对象的设计 ,让开发者更加得心应手,QTP不是。 

    5. Selenium可以用 javac#pythonrubyphpperlHTML,但是QTP只能使用VB来编写。 

    6. QTP只支持WindowsSelenium可以支持WindowsLinuxmacandroidIOS等。 

    7. Selenium的开发环境由公司决定, QTP只能在自己的IDE中使用。 

    8. QTP的代码提示等功能太弱,加大初学者难度。

    9. 最重要的是Selenium不要钱

          

    4. 参考文档

    官网http://docs.seleniumhq.org/

    帮助文档http://docs.seleniumhq.org/docs/

    5. Selenium版本介绍

    • Selenium 主要分为 

         Selenium core:为selenium的核心部分,现在已经不单独使用了; 

         Selenium RC(Selenium1):为上一代产品,现在已经被2代所取代; 

         Selenium IDE:是火狐上的录制插件; 

         Selenium Grid(用于并发测试) ; 

         Selenium WebDriver(Selenium2) 

    •  Selenium2已经包含了一代所有代码,并实现了一些一代无法完成的功能,并具有面向对象,拓展性好等特点。 

    二、 下载

    1. Selenium 下载

    1)进入官网下载http://www.seleniumhq.org/download/

    2)[转载]selenium入门教程c#

    2. 其他下载

    Firefox下载 http://firefox.com.cn/download/

    Firebug下载:https://addons.mozilla.org/firefox/addon/1843

    FirePath 下载 https://addons.mozilla.org/zh-CN/firefox/addon/firepath/

    或者在火狐中下载

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    三、 Selenium IDE的使用

    1. 界面介绍

    安装好IDE后会在FF中工具选择下有Selenium IDE的选项

    点击打开

    [转载]selenium入门教程c#

    打开之后出现如下界面

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    以上

    1填写待测网站站点

    2脚本的速度设置,执行暂停等

    3录制 默认是进入录制状态,点击一下取消录制

    4测试脚本

    5测试的代码

    6日志,消息等 

    2. 关键设置

    点击options 

    Format

    如果出现: (want the formats back?click read more,这是无法把录制的脚本转换为其他语言的。请点击options下面的options…进入如下设置界面

    选择标红的选项,点击确定。

    出现以下选项为设置成功

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    3. 使用举例

    [转载]selenium入门教程c#

    上图标明了一些Selenium IDE的主要功能。其中,由CommandTargetValue组成的表格就是脚本,每个脚本都是由一条一条的Action(行为)组成,而每个 Action又由(CommandTargetValue)三者组成。Command就是动作,Target指的是Web中的某个对象,比如:文字,输入框等等,,而Value就是这个对象的值。

        当弹出上面的IDE窗口后,我们就可以开始Selenium的脚本录制了,右上角有个红色的圆点,当它下按时(如上图)就表示IDE正在进行脚本录制。 OK,开始录制,录制的时候,直接操作Firefox浏览器窗口就可以了,IDE会自动记录你的操作的,下面我演示一个例子:

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#

    [转载]selenium入门教程c#



     


     

    上图例子中,我的操作步骤如下:

    (1).在地址栏输入:http://www.baidu.com/

    (2).登陆百度首页后,在查询框输入“hyddd”。

    (3).按“百度一下”按钮

    (4).进入搜索结果页面后,右键单击第一条记录(即:hyddd - 博客园),在右键弹出菜单中,单击“Verify TestPersent hyddd - 博客园”。

    (5).单击第一条记录(即:进入hyddd - 博客园)

    (6).Firefox弹出一个新Tab页面,并进入了我的博客。

    OK,现在看看我们的Selenium IDE录制的结果吧:>


    [转载]selenium入门教程c#

        上图中,中间的表格就是录制的结果,你可以按“运行脚本”重新回放脚本看看,值得注意的是,在运行时,Firefox可能会认为脚本中最后一个操作(即: 步骤6)为非法弹出框,浏览器会自动阻止其弹出,这个需要设置一下Firefox,具体位置 是:Firefox->Menubar->Tools->options->content->Block pop-up Window,你可以把钩去掉或者在Exceptions里面添加相应的网址。

        恩,到此为止,脚本录制圆满完成:>

       在运行脚本后,你会发现IDE表格的颜色发生了变化,运行前,脚本表格为白色,成功运行完毕后,表格为青色,其中还分为深青色和浅青色两种,浅青色表示: 动作成功,如:打开网页成功,点击按钮成功等等,而深青色表示:判断正确,如:“hyddd - 博客园”这段文字在页面中存在等等。 看完正确,现在我们看看出错时的情况吧。

    [转载]selenium入门教程c#

    出错时,表格可能会出现两种颜色,一种是浅粉红色,一种是深粉红色。浅粉红色表示判断结果为false,这种情况案例还是会继续执行下去,判断的失败不会影响案例的运行,深粉红色表示动作失败,如:没有找到按钮等(如上图),这种情况下案例会停止运行。

    4. 代码转换

    点击以下可以转化为对应语言的版本

    [转载]selenium入门教程c#

    选择 c#NUintWebDriver

    [转载]selenium入门教程c#

    警告转换为c#之后就不能再IDE中执行了

    点击确定 为以下c#代码

     [转载]selenium入门教程c#

    可以复制一下代码粘贴到vs中进行运行

    四、 Selenium 在vs2010的编码

    1. 建立selenium测试项目

    2. 编码

    [转载]selenium入门教程c#

    1创建一个项目,这儿我以控制台程序为例

    2 下载selenium c#包 [selenium-dotnet-2.32.0.zip]并解压

    3增加引用

    我是用的donet4.0所以选择4.0的。

    全选所有DLL文件,点击OK

    [转载]selenium入门教程c#

    项目引用会有如下文件

    [转载]selenium入门教程c#

    复制IDE中代码 修改之后就可以跑起来第一个selenium脚本了

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using OpenQA.Selenium;

    using NUnit.Framework;

    using OpenQA.Selenium.Firefox;

    namespace ConsoleApplication1

    {

        [TestFixture]

        class Program

        {

            static void Main(string[] args)

            {

                Program p = new Program();

                p.SetupTest();

                p.TheUntitledTest();

                p.TeardownTest();

            }

            private IWebDriver driver;

            private StringBuilder verificationErrors;

            private string baseURL;

            private bool acceptNextAlert = true;

            [SetUp]

            public void SetupTest()

            {

                driver = new FirefoxDriver();

                baseURL = "http://www.baidu.com/";

                verificationErrors = new StringBuilder();

            }

            [TearDown]

            public void TeardownTest()

            {

                try

                {

                    driver.Quit();

                }

                catch (Exception)

                {

                    // Ignore errors if unable to close the browser

                }

                Assert.AreEqual("", verificationErrors.ToString());

            }

            [Test]

            public void TheUntitledTest()

            {

                driver.Navigate().GoToUrl(baseURL + "/");

                driver.FindElement(By.Id("kw")).Clear();

                driver.FindElement(By.Id("kw")).SendKeys("selenium");

                driver.FindElement(By.Id("su")).Click();

                driver.FindElement(By.Id("kw")).Clear();

                driver.FindElement(By.Id("kw")).SendKeys("selenium ideÌ?使º1®?");

                driver.FindElement(By.Id("su")).Click();

            }

            private bool IsElementPresent(By by)

            {

                try

                {

                    driver.FindElement(by);

                    return true;

                }

                catch (NoSuchElementException)

                {

                    return false;

                }

            }

            private bool IsAlertPresent()

            {

                try

                {

                    driver.SwitchTo().Alert();

                    return true;

                }

                catch (NoAlertPresentException)

                {

                    return false;

                }

            }

            private string CloseAlertAndGetItsText()

            {

                try

                {

                    IAlert alert = driver.SwitchTo().Alert();

                    string alertText = alert.Text;

                    if (acceptNextAlert)

                    {

                        alert.Accept();

                    }

                    else

                    {

                        alert.Dismiss();

                    }

                    return alertText;

                }

                finally

                {

                    acceptNextAlert = true;

                }

            }

        }

    }

  • 相关阅读:
    Direct3D 11 Tutorial 4: 3D Spaces_Direct3D 11 教程4:3D空间
    Direct3D 11 Tutorial 3: Shaders and Effect System_Direct3D 11 教程3:着色器和效果系统
    Direct3D 11 Tutorial 2: Rendering a Triangle_Direct3D 11 教程2:渲染一个三角形
    Direct3D 11 Tutorial 1: Basics_Direct3D 11 教程1:基础
    使用git命令push到自己的仓库,显示Unknown且没有贡献记录的解决方案
    数据结构与算法笔试面试题整理
    网络笔试面试题整理
    C++笔试面试题整理
    使用.gitignore删除Github上的.idea文件
    做游戏服务器端开发时的一些收获与总结
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/7041856.html
Copyright © 2020-2023  润新知