我们有一个旧的 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/