Tag: 黄瓜

Rails3 Google Maps使用selenium进行测试

我正在尝试使用Rails3测试谷歌地图应用程序。 我正在使用带有水豚和selenium的黄瓜进行JavaScript测试。 我有一张地图,我等待加载谷歌地图,然后发送一个ajax请求到我的服务器,在那里我得到我插入地图的位置。 我想知道是否可以使用selenium等到加载谷歌地图,完成对我的服务器的ajax调用并将标记放在地图内。 另一个问题是,如何在谷歌地图中选择此标记。 有选择器吗? 或者我应该走另一条路,并使用像Jasmine这样的JS测试框架来测试我的类是否已加载等等。 我对Jasmine没有任何经验,所以可以测试谷歌地图吗? 也许有人知道解决方案,或提示是否可行,或解决方法或……;) [更新1] 我已经找到了如何在谷歌地图中选择标记。 如果你看看googles selenium测试你可以看看他们在做什么。 例如,选择标记: waitForElementPresent xpath=//img[contains(@src,’marker’)] 但接下来是下一个问题。 如何选择特定标记? 是否有一种方法可以在javascript google maps API中为其分配ID,以便我可以使用#marker_1 , #marker_2 …? 另一个奇怪的事情是,我的黄瓜步骤定义中没有像wait_for_element或wait_for_condition这样的函数。 谷歌selenium测试是否使用自己的函数,如waitForElementPresent ? 或者这个标准的seleniumfunction是什么? 我发现了很多post,他们总是使用类似的东西 selenium.wait_for_condition selenium.wait_for_element or @selenium.wait_for_condition … 在我的步骤定义中, selenium和@selenium var a nil。 我该如何访问这些方法? 我也发现了这篇文章 ,但它是从08年10月开始的,所以我认为必须有一个更好的解决方案(顺便说一句。这个解决方案一见钟情)。 就像在这个页面上一样,他们概述了一些如何等待条件或元素的selenium方法。 这仍然存在吗? 我该如何使用这个function? [更新2] 该死的,我发现,我上面提到的selenium测试是针对谷歌地图的V2,而不是针对V3。 我试过了 wait_until { page.has_xpath?(“//img[contains(@src,’marker’)]”) } 但它不起作用。 标记在地图上可见,但是我收到超时错误,因为找不到此XPath选择器。 […]

如何正确配置rails test以在浏览器中运行它? (site_prism,黄瓜,水豚,seleniumwebdriver)

我正在为rails app编写测试,我使用site_prism,capybara,selenium和cucumber。 如何设置Selenium驱动程序在浏览器(firefox)中运行我的测试? 例如,它是一个function: Given /^I navigate to Dashboard page$/ do @page = DashboardPage.new # Dashboardpage is inheritor of SitePrism::Page @page.load @page.login_form.login_field.set ‘admin’ @page.login_form.password_field.set ‘test’ @page.login_form.signin_button.click @page.title.include? ‘Dashboard’ end 这是我的features / support / env.rb配置文件: require ‘cucumber/rails’ require ‘capybara’ require ‘capybara/cucumber’ require ‘selenium-webdriver’ require ‘site_prism’ # cypabara settings Capybara.default_selector = :css Capybara.ignore_hidden_elements = false Capybara.default_wait_time = […]

将自定义标题传递给Capybara的Selenium

我们使用自定义标头来validation我们的网络应用。 http代理服务拦截请求,确认用户的真实性,然后将自定义标头注入请求。 为了测试应用程序,我需要在请求到达ApplicationController方法之前将这些标头写入请求。 现在,当前的hack适用于我所有的非JavaScript测试: # in hooks.rb Before do require ‘capybara/driver/rack_test_driver’ module Capybara::Driver class Authentic “foo”) end end end Capybara.register_driver(:authentic) do |app| Capybara::Driver::Authentic.new(app) end Capybara.default_driver = :authentic end #in the controller class ApplicationController File.join(Rails.root, “public”, “403.html”) unless request.env.keys.include?(‘foo’) end end 任何我不想被认证的请求,我可以使用标签来使用常规的rack_test驱动程序: Feature: Authentication Valid users should be authenticated. Invalid users should be redirected to the […]

如何使用Cucumber来测试非Ruby,非Rack API

我用黄瓜做很多事情。 我非常喜欢它作为BDD环境。 因此,我想将其用作测试API的外部工具。 我想做的事情如下: Scenario: Hit api /info path and get info back When I visit the API path ‘/info’ Then I should see the following text “Here’s info on the API” 或类似的东西。 我主要想将API视为黑盒子,只测试输入和输出。 我不打算检查API中的任何内容。 我看过的与Cucumber(例如Capybara)合作的大多数库似乎是基于基于Rack的应用程序设计的。 我想要类似的东西,但不依赖于Rack。 存在哪些没有机架依赖性的gem(如果有的话)。 或者有没有办法使用Capybara来测试远程服务器上的API?

在生产环境中使用Cucumber + RSpec

您是否在生产环境中使用过Cucumber? 你发现使用它有什么问题? 你会建议我用吗? 我正在学习使用Cucumber和RSpec,我正在权衡Pro和Con在即将到来的项目中使用它并想要一些输入。 我将使用RSpec,但我想知道使用Cucumber是否值得花费额外的时间来编写测试。 额外的信息: 我不直接与客户打交道; 但我确实在团队中工作并与没有太多技术知识的项目经理打交道,所以我认为Cucumber测试的可读性会很有用 项目规模从中到大,项目可以有多个阶段,我们会维护它们 时间限制非常严格,但我认为额外的测试覆盖率有望捕获更多的错误,从而减少整体时间 任何信息都会很棒 干杯

与黄瓜轨道的数据库清洁交易

我正在为注册表单编写一个场景。 @abc @selenium Scenario:Non registered user signs up Given I am on the sign-up page When I fill in the following: |first_name|Anidhya| |last_name|Ahuja| |email|anidhya@gmail.com| |password|123456| And I press “submit” Then I should see “Registration complete” 我希望在此方案之后使用数据库清理程序回滚测试数据库,以便我可以一次又一次地使用此方案。 对于我在env.rb文件中的内容,我写道: begin require ‘database_cleaner’ require ‘database_cleaner/cucumber’ DatabaseCleaner.strategy = :transaction Cucumber::Rails::World.use_transactional_fixtures = true rescue NameError raise “You need to add […]

黄瓜测试中的cookies使用水豚

作为我对网站的集成测试的一部分,我使用黄瓜和水豚。 似乎水豚不能模仿cookies的使用。 例如,我在用户登录时设置cookie: def sign_in(user) cookies.permanent.signed[:remember_token] = [user.id, user.salt] current_user = user end 但是当我稍后使用cookies获取cookie的值时,它会返回{}这是一个已知的水豚限制吗? 如果是这种情况,如何在多个请求中测试已登录的用户? 我应该添加我的测试: Scenario: User is signed in when they press Sign In Given I have an existing account with email “bob@jones.com” and password “123456” And I am on the signin page When I fill in “Email” with “bob@jones.com” And I fill […]

黄瓜错误被抑制(未完全显示)

我刚刚安装了黄瓜,我测试了它。 我收到以下错误: teefcomp:cucumber-intro teef$ cucumber features/manage_users.feature Using the default profile… F—-F Failing Scenarios: cucumber features/manage_users.feature:6 # Scenario: User List 1 scenario (1 failed) 4 steps (4 skipped) 0m0.029s 它似乎是在抑制错误。 我期待的是: Feature: Manage users In order to understand my user base better As an administrator I want to view a list of users Scenario: User List […]

黄瓜:等待ajax:成功

我在Rails 3.1项目中有以下典型的黄瓜步骤: … When I follow “Remove from cart” Then I should see “Test Product removed from cart” 困难在于“从购物车中删除”按钮是一个ajax:远程调用,它通过以下方式将“从购物车中删除测试产品”返回到#cart_notice元素: $(‘#cart_notice’).append(” removed from cart”); 该function在浏览器中工作正常,但没有在黄瓜中找到“从购物车中删除测试产品”文本。 我猜这是因为Cucumber在AJAX返回之前正在搜索文本? 所以,简而言之…如何确保黄瓜在搜索所需内容之前等待ajax返回结果?

我可以使用Selenium IDE生成Cucumber / Capybara步骤吗?

我已经安装了Selenium IDE(Firefox插件)和Capybara(gem)。 我现在正在我的rails应用程序中从Cucumber / Capybara步骤(@javascript)驾驶Selenium。 问题是: 我可以将Selenium IDE步骤导出为Cucumber / Capybara步骤吗? 在Selenium IDE选项>格式中我只能看到Ruby(Test :: Unit)和RSpec,但是拥有Capybara格式也很棒 。 谢谢。