引言
在现代软件开发中,自动化测试是保证软件质量的重要手段。Selenium是一个广泛使用的自动化测试工具,而C#作为一门强大的编程语言,常用于开发和测试应用程序。本文将介绍如何使用C#生成Selenium测试报告,重点讲解使用代理IP技术,并详细展示设置UserAgent和Cookie的方法。
正文
环境配置
在开始之前,需要确保已安装以下工具和库:
- Visual Studio- C#开发环境
- Selenium WebDriver- 自动化测试库
- NUnit- 测试框架
- ExtentReports- 生成测试报告的库
安装Selenium WebDriver和ExtentReports:
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver
Install-Package ExtentReports
配置代理IP
使用代理IP可以隐藏真实IP地址,提高爬虫的安全性和成功率。本文将使用亿牛云爬虫代理。
编写测试代码
下面是一个完整的示例代码,展示了如何使用C#进行Selenium自动化测试,并生成测试报告。
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using NUnit.Framework;
using AventStack.ExtentReports;
using AventStack.ExtentReports.Reporter;
namespace SeleniumTest
{
public class SeleniumTests
{
private IWebDriver driver;
private ExtentReports extent;
private ExtentTest test;
[SetUp]
public void Setup()
{
// 配置代理IP 亿牛云爬虫代理加强版
var options = new ChromeOptions();
options.AddArguments("--proxy-server=http://proxy.16yun.cn:8080");
options.AddArguments("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36");
// 初始化ChromeDriver
driver = new ChromeDriver(options);
// 设置Cookie
driver.Manage().Cookies.AddCookie(new Cookie("test_cookie", "cookie_value", ".example.com", "/", DateTime.Now.AddDays(1)));
// 配置ExtentReports
var htmlReporter = new ExtentHtmlReporter("TestReport.html");
extent = new ExtentReports();
extent.AttachReporter(htmlReporter);
test = extent.CreateTest("Selenium Test with C#");
}
[Test]
public void TestGoogleSearch()
{
try
{
test.Log(Status.Info, "测试开始:打开Google首页");
// 打开Google首页
driver.Navigate().GoToUrl("https://www.google.com");
test.Log(Status.Info, "输入搜索关键词并提交");
// 输入搜索关键词并提交
var searchBox = driver.FindElement(By.Name("q"));
searchBox.SendKeys("Selenium C#");
searchBox.Submit();
// 等待搜索结果加载
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(d => d.Title.StartsWith("Selenium C#", StringComparison.OrdinalIgnoreCase));
test.Log(Status.Pass, "测试通过:搜索成功");
}
catch (Exception e)
{
test.Log(Status.Fail, $"测试失败:{e.Message}");
throw;
}
}
[TearDown]
public void TearDown()
{
// 生成测试报告
extent.Flush();
// 关闭浏览器
driver.Quit();
}
}
}
关键点解释
- 配置代理IP:使用
ChromeOptions
设置代理服务器。 - 设置UserAgent:通过
ChromeOptions
设置自定义的UserAgent。 - 添加Cookie:在启动浏览器后添加自定义Cookie。
- 生成测试报告:使用ExtentReports生成可视化测试报告。
实例
运行上述代码后,会生成一个名为TestReport.html
的测试报告文件,报告详细记录了测试用例的执行过程和结果。结论
本文介绍了如何使用C#和Selenium进行自动化测试,并生成详细的测试报告。通过配置代理IP、设置UserAgent和Cookie,可以提高测试的安全性和成功率。使用ExtentReports可以生成专业的测试报告,帮助开发团队更好地分析测试结果和发现问题。希望本文对您的自动化测试工作有所帮助。