Csharp/C#教程:模块化Selenium RC测试脚本的最佳实践分享


模块化Selenium RC测试脚本的最佳实践

我在Visual Studio(C#)中创建Selenium RC测试脚本。 我正在努力重新考虑测试; 我的所有测试都在一个文件中。 我将非常感谢网站,书籍等的任何输入和/或指示,以了解模块化测试。

我必须在不同的站点(相同的应用程序,但为不同的客户端和登录配置不同)上运行相同的测试,这些测试95%相同。 有人愿意提供一些很好的例子或最佳实践吗?

谢谢!

编写Selenium测试或任何UI测试的最佳实践是Page Object Model ,它是为每个页面创建Object的想法。 这些对象中的每一个都抽象出页面,因此当您编写测试时,它看起来并不像您在使用Selenium。

因此,对于博客,您可以执行类似的操作来为主页创建对象

public class Home { private readonly ISelenium _selenium; ///  /// Instantiates a new Home Page object. Pass in the Selenium object created in the test SetUp(). /// When the object in instantiated it will navigate to the root ///  /// Selenium Object created in the tests public Home(ISelenium selenium) { this._selenium = selenium; if (!selenium.GetTitle().Contains("home")) { selenium.Open("/"); } } ///  /// Navigates to Selenium Tutorials Page. Selenium object wll be passed through ///  /// SeleniumTutorials representing the selenium_training.htm public SeleniumTutorials ClickSelenium() { _selenium.Click("link=selenium"); _selenium.WaitForPageToLoad("30000"); return new SeleniumTutorials(_selenium); } ///  /// Click on the blog or blog year and then wait for the page to load ///  /// blog or blog year /// Object representing /blog.* pages public Blog ClickBlogYear(string year) { _selenium.Click("link=" + year); _selenium.WaitForPageToLoad("30000"); return new Blog(_selenium); } // Add more methods as you need them } 

然后你会创建一个如下所示的测试

上述就是C#学习教程:模块化Selenium RC测试脚本的最佳实践分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 [TestFixture] public class SiteTests { private ISelenium selenium; [SetUp] public void Setup() { selenium = new DefaultSelenium("localhost", 4444, "*chrome", "https://www.theautomatedtester.co.uk"); selenium.Start(); } [TearDown] public void Teardown() { selenium.Stop(); } [Test] public void ShouldLoadHomeThenGoToXpathTutorial() { Home home = new Home(selenium); SeleniumTutorials seleniumTutorials = home.ClickSelenium(); SeleniumXPathTutorial seleniumXPathTutorial = seleniumTutorials.ClickXpathTutorial(); Assert.True(seleniumXPathTutorial. IsInputOnScreen(SeleniumXPathTutorial.FirstInput)); Assert.True(seleniumXPathTutorial .IsInputOnScreen(SeleniumXPathTutorial.SecondInput)); Assert.True(seleniumXPathTutorial .IsInputOnScreen(SeleniumXPathTutorial.Total)); } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1009356.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐