用于多浏览器测试的 Specflow 的 DataSource 属性

2024-04-22

我有一些 C# 中的 Web ui 测试,这些测试是通过 browserstack 中的 selenium 执行的。目前,这些只是简单的单位毫秒测试,它们是在不同的浏览器上执行的。 我想将测试移植到specflow,但我真的不知道如何进行多浏览器测试。

目前,为了在多个浏览器中执行这些测试,我正在使用数据源 http://msdn.microsoft.com/en-us/library/ms182527.aspx属性,它基本上从 XML 文件中为相同的测试获取不同的输入

[TestMethod]
[Ignore]
[DeploymentItem("JLL.Specs\\Browsers.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\Browsers.xml", "Row", DataAccessMethod.Sequential)]
public void LoadHomePageAndFindSearchBox()
{    
   ...
}

问题是 Specflow 不支持 DataSource 属性。 任何想法?

这是 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>
<Rows>
  <Row>
    <browser>Firefox</browser>
    <browser_version>31.0</browser_version>
    <os>Windows</os>
    <os_version>7</os_version>
    <resolution>1280x1024</resolution>
    <browserName></browserName>
    <platform></platform>
    <device></device>
  </Row>
  <Row>
    <browser>Chrome</browser>
    <browser_version>36.0</browser_version>
    <os>Windows</os>
    <os_version>XP</os_version>
    <resolution>1024x768</resolution>
    <browserName></browserName>
    <platform></platform>
    <device></device>
  </Row>

...

您可以使用 Web 驱动程序抽象框架来编写与驱动程序无关的测试代码。为此,我使用了Coypu https://github.com/featurist/coypu。使用这个库,您可以轻松地在不同的 Web 驱动程序(例如 Selenium、Phantomjs、Wait)之间切换,而无需编写不同的驱动程序代码。

在网络驱动程序工厂类中,您可以使用类似的代码(请参阅here https://github.com/featurist/coypu#driver了解更多信息):

sessionConfiguration.Driver = Type.GetType("Coypu.Drivers.Selenium.SeleniumWebDriver, Coypu");
sessionConfiguration.Browser = Drivers.Browser.Parse("firefox");

获取 FireFox 的 Selenium 实例,或者您可以将“firefox”替换为“chrome”以获取 Chrome 实例。

我已经使用这种方法为不同的浏览器运行了一套测试,效果很好。然而,这意味着为一个浏览器执行一套测试,然后在完成后为另一个浏览器运行它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于多浏览器测试的 Specflow 的 DataSource 属性 的相关文章

随机推荐

  • 具有多个参数的 COM“获取属性”

    我正在尝试打电话WindowsInstaller Installer ProductsEx http msdn microsoft com en us library aa369461 28v vs 85 29 aspx来自 python
  • 导航栏是否应该始终以列表的形式实现?

    首先 非常抱歉 如果这不是一个 真正的 stackoverflow 问题 但这是我一直想知道的事情 当您为网站 html 编写导航栏时 我读到这是非常好的实践 即使不是使用列表标签实现它的唯一实践 例如 ul li Home li li A
  • 嵌套聚合物组件内容问题

    foo html
  • Yii2如何检查两个模型是否已经链接

    我有两个通过连接表关联的模型 model gt link 是用于建立两个模型之间关系的方法 它基本上用两个模型的相应键填充连接表 如果两个模型已链接并且我尝试再次链接它们 则会出现错误 因为密钥对已存在于连接表中 然后我需要在尝试链接模型之
  • 将工作簿的所有工作表复制到另一个文件

    我想对我的所有 xlsx 执行以下步骤 复印第一张纸 将复制的工作表粘贴到另一个文件 将粘贴的工作表重命名为文件名 重复步骤 1 并将工作表复制到步骤 2 的同一文件中 重复步骤 3 我可以用 R 执行此步骤吗 我的 xlsx contei
  • Jquery 下一个相邻选择器 $(this)

    我如何将相邻的选择器 与 this 一起使用 我需要有关注释行的帮助 this does not work ExpandCollapse click function if this nextUntil Collapsable is vis
  • JSONB 会让 PostgreSQL 数组变得无用吗?

    假设您想在对象 例如帖子 上存储 标签 在 9 4 版本中 您有 3 个主要选择 标签作为文本 标签为 jsonb 标签作为文本 并且您将 JSON 字符串存储为文本 在许多情况下 第三个是不可能的 因为它不允许对 标签 值进行条件查询 在
  • `istreambuf_iterator` 和 `istream_iterator` 之间的区别

    有什么区别istreambuf iterator and istream iterator 对于以下代码 istream iterator
  • 将 --net=host 传递给 docker build

    将其他选项传递给docker build 你可以指定DOCKER OPTS in etc default docker 但是 net 不可用 构建容器时是否可以使用主机的网络堆栈 我正在运行 Docker 版本 1 3 2 内部版本 39f
  • 删除“OPTIMIZE_FOR_SEQUENTIAL_KEY”会解决我的 script.sql 的失败问题还是涉及更多问题(SQL Server Express DB -> SQL Server)?

    我正在尝试在托管站点 GoDaddy Plesk 上将 SQL Server Express 数据库设置为成熟的 SQL Server DB 但在运行 script sql 文件时遇到了一系列错误消息 我正在按照步骤操作here https
  • Pandas 将值与前一行与过滤条件进行比较

    我有一个包含员工工资信息的数据框 大约有 900000 多行 Sample table num name salary 0 001234 John Johnson 1200 1 001234 John Johnson 1000 2 0012
  • 在 cartopy 墨卡托投影上绘制一个圆

    对于一个项目 我需要创建一个可视化效果 在地图上的某些位置周围绘制一个圆圈 使用的可视化卡托比 v 0 18 0 https scitools org uk cartopy docs latest index html渲染地图 它使用Goo
  • 我可以使用 display:inline 和 text-align: 对吗?

    Example td img src img src div style text align left hello world div td 从技术上讲 你可以 但不会有任何效果 Display inline 会将 div 显示为内联元素
  • python 当程序突然结束时如何保持json的完整性

    我在一个打开 10 个子进程的脚本中运行 多线程 每个子脚本都会查询 API 并将一些数据记录到 json 中 我将每个 json 保存在另一个 json 中 但是代码有时会突然结束并破坏 json 的完整性 因此无法重新打开它 例如 20
  • unity3d - 加速度计灵敏度

    我正在 Unity3D 4 3 中测试加速度计代码 我想做的就是在倾斜 ipad 的同时简单地改变物体角度 以像真实生活一样伪造视角 一切工作正常 除了加速计有点太敏感 即使我把它放在桌子上 我也可以看到游戏对象在闪烁 如何让它不那么敏感
  • 如何使用 MiniProfiler.Settings.CustomUITemplates

    再会 我在上一篇文章以及上一篇文章中都看过这里http miniprofiler com http miniprofiler com 但找不到任何有关如何使用的文档MiniProfiler Settings CustomUITemplate
  • Hibernate 排序依据最后为空

    Hibernate 与 PostgreSQL DB 一起使用时 按列对 desc 进行排序时 空值会高于非空值 SQL99 标准提供关键字 NULLS LAST 来声明空值应低于非空值 使用 Hibernate 的 Criteria API
  • 如何在 Django REST Framework 上启用 CORS

    如何在 Django REST Framework 上启用 CORS 这参考 http www django rest framework org topics ajax csrf cors 没有多大帮助 它说我可以通过中间件来完成 但我该
  • syn队列和accept队列的混淆

    在阅读TCP源码时 我发现一个困惑的事情 我知道 TCP 在 3 次握手中有两个队列 第一个队列存储服务器收到的连接SYN并发回ACK SYN 我们称之为同步队列 第二个队列存储3WHS成功并建立连接的连接 我们称之为接受队列 但在阅读代码
  • 用于多浏览器测试的 Specflow 的 DataSource 属性

    我有一些 C 中的 Web ui 测试 这些测试是通过 browserstack 中的 selenium 执行的 目前 这些只是简单的单位毫秒测试 它们是在不同的浏览器上执行的 我想将测试移植到specflow 但我真的不知道如何进行多浏览