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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 在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可以生成专业的测试报告,帮助开发团队更好地分析测试结果和发现问题。希望本文对您的自动化测试工作有所帮助。
相关文章
|
7天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
23 4
|
2月前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
1天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
42 19
Selenium IDE:Web自动化测试的得力助手
|
3天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
58 16
Selenium:强大的 Web 自动化测试工具
|
2月前
|
测试技术 C# 数据库
C# 单元测试框架 NUnit 一分钟浅谈
【10月更文挑战第17天】单元测试是软件开发中重要的质量保证手段,NUnit 是一个广泛使用的 .NET 单元测试框架。本文从基础到进阶介绍了 NUnit 的使用方法,包括安装、基本用法、参数化测试、异步测试等,并探讨了常见问题和易错点,旨在帮助开发者有效利用单元测试提高代码质量和开发效率。
155 64
|
6天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
46 13
|
16天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
24 6
|
19天前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
33 6
|
27天前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
1月前
|
C# UED SEO
C# 异步方法async / await任务超时处理
通过使用 `Task.WhenAny`和 `Task.Delay`方法,您可以在C#中有效地实现异步任务的超时处理机制。这种方法允许您在指定时间内等待任务完成,并在任务超时时采取适当的措施,如抛出异常或执行备用操作。希望本文提供的详细解释和代码示例能帮助您在实际项目中更好地处理异步任务超时问题,提升应用程序的可靠性和用户体验。
52 3