c# - 如何使用 C# 编写自动化系统测试?

标签 c# asp.net testing automated-tests

我们有一个旧的 asp.net 应用程序,它没有单元测试、集成测试、组件测试或 UI/功能测试 - 令人惊讶!

现在,我们想介绍一些自动化系统测试来测试功能,这样当应用出现问题时我们会立即收到通知!

例如,用户注册表单,用户可以在其中输入用户名和电子邮件地址并在系统中注册。

引入单元测试为时已晚/成本高昂(因为当前设计不可单元测试),因此现在最重要的是编写自动化系统测试。

例如,我们想用 C# 编写一个测试,它打开浏览器,将数据输入文本框,点击注册按钮,然后我们的测试检查数据是否被插入进入数据库,是否发送验证邮件,最后是否向用户显示正确的消息(当然这只是主要场景,还会有许多特殊情况)。基本上不是测试孤立的单元,而是测试整个过程是否有效!

那么,我可以使用什么工具来帮助我编写此类测试并使其自动化?

您会推荐使用哪种方法?

我查看了 Selenium 和 Fitnesse,但它们似乎不允许我编写 C# 代码来测试数据库等。我查看了 SoapUI/LoadUI 相同的问题。不确定是否可以使用 WatiN。非常感谢任何想法/建议。

希望问题清楚。

非常感谢,

最佳答案

Selenium 绝对允许您编写 C# 代码进行系统测试。首先,您将有一种与网站交互的方法,第二种方法可以验证数据库是否正确。所有这些都在一个测试应用程序/类中。

对于网络交互,您可以使用 WebDriver (取自 Selenium API doc )。下面是 IWebDriver 接口(interface)的一些示例代码。它与 google 交互,但您可以修改它以与您的网站交互。

using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;

class GoogleSuggest
{
    static void Main(string[] args)
    {
        IWebDriver driver = new FirefoxDriver();
        driver.Navigate().GoToUrl("http://www.google.com/");
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys("Cheese");
        System.Console.WriteLine("Page title is: " + driver.Title);
        driver.Quit();
    }
}

然后您只需实现另一种方法来验证数据库条目是否正确,使用 LinqToSql 或其他 C# 数据库 API 之类的东西。

关于c# - 如何使用 C# 编写自动化系统测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990933/

相关文章:

c# - 将程序集转换为 byte[]

javascript - 无法在超链接中传递数组值

iphone - 如何更改 iOS Kif 测试的顺序?

c# - 何时关闭 tcpclient 和 networkstream

c# - 计算点击次数并显示在另一个页面上[Windows Phone c#]

c# - SortedDictionary.Count 的成本

c# - 如何从多用户编辑中锁定 asp.net 页面?

c# - C# 中的 ASP.Net 复选框

testing - 如何在具有相同浏览器 session 的相同夹具下运行多个测试

testing - 测试序言程序的更快方法