首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

自动化框架 FluentLenium 在全球化测试场景中的应用更新

自动化框架 FluentLenium 在全球化测试场景中的应用更新

应用 TestNG                组织测试用例TestNG 是一个测试框架,其灵感来自 JUnit 和 NUnit 的,但引入了一些新的功能,使其功能更强大,使用更方便。
TestNG 是一个开源自动化测试框架,TestNG 表示下一代。 TestNG 是类似于 JUnit(特别是 JUnit 4),但它不是一个                JUnit 扩展。它的灵感来源于 JUnit。它的目的是优于 JUnit 的,尤其是当测试集成的类。 TestNG 的创造者是 Cedric Beust(塞德里克·博伊斯特)。
TestNG 消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。 因为它在很大程度上借鉴了 Java 注解(JDK5.0 引入的)来定义测试,它也可以告诉你在真实的 Java 语言生产环境中如何使用这个新功能。
TestNG suite XML 模板 2
常用截图方法
  • captureWindow(String)将把整个浏览器屏幕作为截图目标,并将截取的图片存入参数 String 所指定的位置。
  • captureElement(String,FluentWebElement)将对定位到的 FluentWebElement                    截图操作,即仅对定位到的对象截图。
  • captureFlyover(String,FluentWebElement,String)将模拟鼠标在定位到的对象上浮动,并截取                    String 参数对应的 CSS Selector 的元素的 Tooltips
  • captureScrollingElement(String, FluentWebElement)可以为带有滚动条的页面截图,程序会自动调用                    JavaScript 脚本去操作滚动条,然后计算并截取多张图片,最后拼合成一个完整的图片。第二个参数是 FluentWebElement                    类型的,用来定位带有滚动条的元素。
结合 Selenium                解决常见问题
  • 处理 Iframe 和切换多个窗口 switchTo(FluentWebElement)方法能够切换到指定的 Iframe。通过                    switchTo()或者 switchToDefault()能够切换回到原来的页面。
  • 缩放浏览器的显示比例。首先,通过 getDriver()方法获取到 WebDriver 对象,然后调用 Selenium 的定位方法定位                    html 标签,再通过 WebElement 对象的 sendKeys 方法发送组合键达到缩放窗口的效果。WebDriver driver                    = getDriver();
    WebElement html =                    driver.findElement(By.tagName("html"));//Zoom                    Inhtml.sendKeys(Keys.chord(Keys.COMMAND, Keys.ADD));//Zoom                    Outhtml.sendKeys(Keys.chord(Keys.COMMAND, Keys.SUBTRACT));
  • 如何上传文件
    上传文件首先调用 getDriver()方法获得 selenium Webdriver                    对象,然后定位到页面上的上传元素,再通过 sendKeys(keysToSend)方法,执行上传。
    WebDriver driver                    = getDriver();WebElement uploadBtn =                    driver.findElement(By.name("Upload"));                    uploadBtn.sendKeys("C:\\file.txt");
  • 在识别元素过程中,经常会用到元素的 css                    属性,在此过程中,会有很多试错的过程,因为同一个页面会有很多相同属性的元素,这时需要找到上下的逻辑关系,或者页面的唯一识别元素来精确定位元素的位置,结合元素的属性,进行进一步的测试。通常我们在点击某个页面元素的时候,可能会遇到悬浮窗,这时,系统会报错,提示有                    element 悬浮在页面上方,这时需要加一些判断,来处理悬浮窗,等待其消失或者主动将其关闭。从而顺利执行我们的                    testcase。
结合                Javascript 解决常见问题
  • 把字符串标记出来
    在 TVT                    截图过程中需要标明哪些字符串是需要被验证的对象,所以我们在利用工具截图过程中需要将其标记出来,这时我们可以调用 JavaScript                    脚本来为元素加边框。在程序里我们可以通过调用 executeScript(String script)方法来执行 JavaScript。如:                    executeScript("document.getElementById(\"kw\").style.border=\"2px                    solid red\";");
  • 利用 JavaScript 显示隐藏对象
    JavaScript 隐藏 Element 的方式通过设置 style 的 display                    和 visibility 属性实现。如:
    style.display="none"或                    style.visibility="hidden",它们的区别是:"display"不但隐藏 Element,而且被隐藏的 Element                    不再占用显示时占用的位置,而"visibility"隐藏仅仅是将 Element 设置成不可见,但被隐藏的 Element                    仍占据原来的的位置。于是我们可以通过改变"display"和 "visibility"的值来显示出                    Element,如:
    style.display="block"或                    style.visibility="visible",如:
    executeScript("document.getElementsByClassName(\"tooltip\")[0].style.display=\"block\"");或                    executeScript("document.getElementsByClassName(\"tooltip\")[0].style.visibility=\"visible\"");需要注意的是在                    JavaScript 里的双引号需要用\转义。同样的,也可以使用 JQuery                    语法把隐藏对象显示出来。
    //隐藏$("#id").css('display','none'); 或                    $("#id").hide()//显示$("#id").css('display','block'); 或                    $("#id").show()//切换 Element 可见状态
    $("#id").toggle()注("#id")表示返回的                    JQuery 对象。
  • 利用页面对象模式提升代码的可读性
    页面对象模式能把所有的用户与界面交互的元素做封装,更易于代码的维护和阅读。如果将来页面出现变化,可以很方便的通过修改                    Page 类来适应新的变化。
页面对象封装模板结束语本文简要介绍了 Selenium、FluentLenium 框架在 GVT/TVT 中截图的应用,从而可以提高 GVT 和 TVT 的工作效率。而且,该框架结合 Selenium 也能够实现 GVT/TVT 中的大多数测试用例。
返回列表