C#生成Selenium测试报告:实用方法与技巧

简介: 在C#中使用Selenium进行自动化测试时,结合代理IP和ExtentReports能增强测试安全性和报告质量。安装必备工具如Selenium WebDriver、NUnit和ExtentReports。在测试设置中,配置代理(如亿牛云爬虫代理)以隐藏IP,通过ChromeOptions定制UserAgent,并添加Cookie。测试代码示例展示了如何打开网页、执行搜索并生成详细的测试报告。使用ExtentReports可创建可视化测试结果,便于团队分析。

爬虫代理.jpeg

引言

在现代软件开发中,自动化测试是保证软件质量的重要手段。Selenium是一个广泛使用的自动化测试工具,而C#作为一门强大的编程语言,常用于开发和测试应用程序。本文将介绍如何使用C#生成Selenium测试报告,重点讲解使用代理IP技术,并详细展示设置UserAgent和Cookie的方法。

正文

环境配置

在开始之前,需要确保已安装以下工具和库:

  1. Visual Studio- C#开发环境
  2. Selenium WebDriver- 自动化测试库
  3. NUnit- 测试框架
  4. 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();
        }
    }
}

关键点解释

  1. 配置代理IP:使用ChromeOptions设置代理服务器。
  2. 设置UserAgent:通过ChromeOptions设置自定义的UserAgent。
  3. 添加Cookie:在启动浏览器后添加自定义Cookie。
  4. 生成测试报告:使用ExtentReports生成可视化测试报告。

    实例

    运行上述代码后,会生成一个名为TestReport.html的测试报告文件,报告详细记录了测试用例的执行过程和结果。

    结论

    本文介绍了如何使用C#和Selenium进行自动化测试,并生成详细的测试报告。通过配置代理IP、设置UserAgent和Cookie,可以提高测试的安全性和成功率。使用ExtentReports可以生成专业的测试报告,帮助开发团队更好地分析测试结果和发现问题。希望本文对您的自动化测试工作有所帮助。
相关文章
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
312 4
|
4月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
397 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
986 8
|
7月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
7月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
11月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
730 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
11月前
|
人工智能 自然语言处理 测试技术
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。
295 5
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
368 31
Selenium IDE:Web自动化测试的得力助手
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
764 17
Selenium:强大的 Web 自动化测试工具

热门文章

最新文章