问题标签 [saucelabs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
curl - 通过 Sauce Labs REST API 从我的本地上传文件
我正在尝试通过Saucelabs REST API从本地上传文件,并使用以下 curl 命令上传文件。saucelabs 中上传的文件路径是什么?如何使用特殊的 URL 文件格式“sauce-storage:your_file_name”进行测试
curl -u SAUCE_USERNAME: SAUCE_ACCESS_KEY -X POST " http://saucelabs.com/rest/v1/storage/ SAUCE_USERNAME /imagefile.jpg?overwrite=true" -H "Content-Type: application/octet-stream" --data -二进制@D:/图像文件.jpg
然后我得到了响应输出
'{"username": "SAUCE_USERNAME", "size": 615651, "md5": "d156965b4d96ea9780a4892c25dc8c4a", "filename": "imagefile.jpg"}'</p>
javascript - 混合客户端/服务器端测试
我应该如何构建包含 Selenium 代码(用于设置页面)和客户端 Mocha 代码(用于实际在正在测试的客户端 JS 上执行测试)的混合测试?
我正在测试一个客户端 javascript 库。单元测试适用于 Karma、Mocha 和 Grunt。单元测试可以在本地运行,也可以通过 SauceLabs 运行。单元测试基本上能够测试所有内容,直到文件实际提交的部分。这部分需要浏览器自动化和/或手动交互,这就是我正在努力解决的问题。
有问题的库是一个 Javascript 文件上传库。它具有分块、自动恢复等功能。它不需要 jQuery,它适用于各种浏览器(IE7-10、FF、Safari(Mac 和 iOS)、Chrome、Android 库存浏览器)。因此,这些测试中需要涵盖很多案例和例外情况。
基本上,我需要使用 Selenium 来设置页面。由于我正在测试客户端 JS 文件上传库,我需要使用 Selenium 以编程方式提交文件,以便实际上传文件。提交此文件后(相当于从尝试在线上传一个或多个文件时出现的对话框窗口中选择一个文件),然后可以运行客户端测试以确保已正确绘制 UI,该文件已被发现等
我正在努力思考如何正确测试它,以及如何将我的测试套件设置为可扩展的、健壮的、简单/易于使用的未来。
我应该注入 JS 代码以使用 Selenium 在客户端运行吗?
一种想法是在适当的时候使用 Selenium 注入客户端 JS 代码。这是我在想的一些伪代码:
对我来说,这会起作用,但看起来像一个巨大的 PITA。我必须想出一些约定来存储和加载加载的客户端脚本。此外,两个不同的测试将有两个不同的注入脚本,因此我们将在我们的 repo 中收集大量一次性使用的脚本。我也害怕沿着这条路走下去,发现这是一个错误的决定或不可能的决定。
有人对此有经验吗?
模拟服务器...我需要一个。
我可以使用Sinon.js制作客户端模拟服务器,或者使用nock拥有一个单独的服务器端模拟服务器。服务器非常简单,但我相信我需要能够在客户端断言来自服务器的响应是预期的。
拦截客户端测试结果
与上述类似,当使用 Selenium 自动化浏览器时,我如何能够
asserts
在客户端代码中进行拦截。例如,假设我想测试我的库和模拟服务器之间的请求-响应循环,并且我想验证如果我的库将请求 A 发送到服务器,它将期望响应 A。Selenium 无法测试它。我需要能够asserts
捕获客户端并通过 Selenium 输出。
一直在敲我的头,试图找出最好的方法来做到这一点。如果有人有类似的经验,请加入!
php - 通过 Saucelabs 的 Mink Extension.php(Selenium2) 解析 Behat/Mink Yml 文件配置中的动态值
我想知道是否有一种可能的方法来解析动态值,特别是name
通过使用*.feature
Behat/Mink 测试,因为它正在使用 Selenium2 功能运行到 Yml 配置文件中
该behat.yml
文件使用Behat/Mink/Extension
文件中带有 Selenium 2 Capabilities 参数的扩展文件。
在Extension.php file
:
https ://github.com/Behat/MinkExtension/blob/2.0/src/Behat/MinkExtension/Extension.php
在Extension.php
MinkExtension 目录下,它selenium2.xml
使用一组数组加载文件,以将该文件中的信息解析到behat.yml
.
我注意到,如果 yml 文件中没有指定 Selenium2 功能的任何参数,Extension.php
则会根据数组名称分配一个默认值:
scalarNode('name')->
defaultValue(isset($config['selenium2']['capabilities']['name']) ? $config['selenium2']['capabilities']['name'] : 'Behat Test')->
<test>.feature
话虽如此,我想知道是否有任何可能的方法可以在测试运行时使用本地目录中的 Behat/Mink 功能测试的名称来解析标题name
。
javascript - 配置实习生设置/拆除我的服务器模拟
我正在使用 Intern 为 JavaScript 小部件编写测试套件。
我已经编写了一些纯 JavaScript 测试和一些页面内DOM测试,但我对如何为Ajax功能编写功能测试有点困惑,它应该与我的简单Node.js模拟服务器(它很有效)用于手动测试)。
具体来说,我想做的是:
- 作为测试套件设置阶段的一部分,启动 Node.js 模拟服务器
- 测试结束时拆除模拟服务器
- (加分)能够从我的实习生测试中询问模拟服务器,例如,检查对模拟的POST请求的内容
我被困在这三个方面 - 我找不到任何来自实习生的文档或示例代码,说明如何在测试套件中处理单独进程(如 Node.js 模拟服务器)的设置或拆卸。
我正在使用带有 Sauce Labs 的实习生(托管Selenium) - 我不确定我的问题是需要在实习生方面解决,还是在 Sauce Labs 方面也需要解决。希望有人得到这个工作并可以提供建议。
selenium - 如何在启动 Sauce 测试后检测网格请求的网络超时?
使用 RemoteWebDriver 客户端对象启动 Sauce 测试后,如何检测网格请求的网络超时?我有一个我希望我的框架能够捕捉到的场景,那就是当向外连接到 SauceLabs 时正常工作但返回连接失败。换句话说,这是一个网络场景,我的 Selenium 测试发送一个浏览器 .get() 并在 SauceLabs 中打开一个带有新 URL 的新浏览器,但是由于网络问题,随后的 JSON 数据包失败并且测试似乎挂起. 我知道问题出在哪里,但我只想让我的单元测试框架报告网络问题。现在,当这种情况发生时,RemoteWebDriver 将无限期超时,这是不可接受的。
我知道要解决这个问题,需要了解 RemoteWebDriver 客户端最初尝试将 JSON 命令发送到 Grid Hub 时客户端超时的工作原理。
我知道我可以在启动 Grid 时指定超时,但客户端似乎没有类似的选项?
cross-browser - BrowserStack, Sauce Labs - 相同的测试,不同的结果
我已经用 Sauce 进行了一段时间的跨浏览器测试。我最近听说了 BrowserStack,并决定试一试。我挖掘它......它的速度更快,并且用户界面更加直观和协作。
我花了很长时间才找到让 IE8 识别媒体查询的方法。无论我做什么,Respond.js 都不起作用(我在阳光下尝试了所有方法),但最终我尝试了 css3-mediaqueries.js,它似乎可以正常工作。
但是当我在 BrowserStack 中测试同一页面时,砰的一声,没有媒体查询。
谁能告诉我相同的测试参数(IE8、Windows 7、1024x768)如何显示媒体查询在 Sauce 中有效,但在 BrowserStack 中无效?
这是我使用的精简测试页链接:
groovy - 如何运行具有依赖项的java groovy混合项目
我正在尝试运行这个的 groovy 版本:
动机是从 groovy 运行它以便能够使用 Geb。
我能够在这个文件夹中运行测试 :
(如果你不使用 mac,你可能需要适应使用 chromedriver 运行)
问题是它运行后会停止,直到我终止进程。
因为我不想实现 Parallelized 的自定义版本,所以我需要在 java 中实现。
您可以检查我失败的尝试的 repo (gradleOnly) 的另一个文件夹。
所以问题是向混合物中添加 java 类的最好、最简单的方法是什么?
毕业?只有时髦?(我不知道如何告诉groovy识别文件夹中的java文件)
提前感谢任何指针
saucelabs - 我们如何在酱实验室 mac 上使用 java 运行 selenium 脚本。
我为 Windows 编写了一个 Selenium 脚本,我想在 mac 上运行该脚本,但我没有 mac。有没有机会使用具有相同脚本的mac?我正在考虑使用酱汁实验室。但我无法理解我们如何使用 saucelab 在 mac 上运行 java 脚本。
有没有人给我与酱汁实验室合作的步骤。
ruby - 安装 RVM 似乎停止了我在酱汁实验室上运行的黄瓜测试
在我安装了 RVM(我正在同时处理的另一个项目的要求)之后,我无法再针对 SauceLabs 运行我的黄瓜测试。我已经使用系统 ruby (1.8.7 p374) 获得了 RVM,并且我所有需要的 gem 都已正确安装。
我会在底部附上宝石清单
因此,当我运行以下命令时,在包含测试和 saucelabs.rb 文件的文件夹中,./sauce_labs.rb 许多我收到以下错误:
我尝试了以下方法来解决这个问题:
- 安装 Rake gem(安装正常但仍然出现相同的错误)
- 尝试安装 rails(最新版本、2.1.2 和 2.0.0 版本,都失败说主动支持需要 ruby 1.9.3 - 目前不是一个选项)
- 试图找出如何关闭 rake 负载但无济于事。
任何帮助将不胜感激,因为我现在没有想法了。
先感谢您。
宝石清单:
- 建设者(3.2.0)
- 捆绑器 (1.3.5)
- 水豚 (1.1.4)
- 子进程(0.3.9)
- cmdparse (2.0.5)
- 指挥官 (4.1.3)
- 黄瓜 (1.2.3)
- diff-lcs (1.2.1)
- 事件机(1.0.3)
- faye-websocket (0.4.7)
- 菲(1.5.0)
- 小黄瓜 (2.11.6)
- 高线 (1.6.16)
- http_parser.rb (0.5.3)
- json (1.7.7)
- 哑剧类型 (1.21)
- multi_json (1.7.1)
- 网络 http 持久 (2.8)
- 网络SSH(2.6.6)
- 网络 ssh 网关 (1.2.0)
- nokogiri (1.5.9)
- 并行 (0.6.2)
- 并行测试(0.10.1)
- 恶作剧 (1.0.2)
- 机架 (1.5.2)
- 机架测试(0.6.2)
- 休息客户端(1.6.7)
- rspec (2.13.0)
- rspec 核心 (2.13.1)
- rspec-expectations (2.13.0)
- rspec 模拟 (2.13.0)
- rubyzip (0.9.9)
- 酱汁 (2.3.2)
- 酱黄瓜 (2.3.1)
- 硒网络驱动程序(2.31.0)
- 网络套接字(1.0.7)
- xpath (0.1.4)
ruby-on-rails - 没有 Rails、Rspec 或 Cucumber 的 Capybara 的 NoMethod 错误
我正在尝试仅在纯 Ruby 中运行没有 Rails、Cucumber、Rspec 的 Capybara。
我的测试脚本如下所示:
visit
工作正常......但feature and scenario
给出了 NoMethodError。我应该在这里包括任何东西吗?