Capybara 模拟真实用户交互 测试 Web 应用

简介: Capybara 通过模拟真实用户交互的方式来测试你的 web 应用。它内置 Rack::Test 和 Selenium 支持,也支持其他驱动。WebKit 通过外部 gem 的形式支持。

Capybara 通过模拟真实用户交互的方式来测试你的 web 应用。它内置 Rack::Test 和 Selenium 支持,也支持其他驱动。WebKit 通过外部 gem 的形式支持。

image.png


核心优势

  • 无需配置 对于 Rails 和 Rack 应用而言,开箱即用。
  • 符合直觉的 API 模拟真实用户行为。
  • 可替换后端 可以替换测试后端,例如从快速的 headless 模式切换到实际的浏览器,无需更改测试。
  • 强力同步 你不用手动等待异步过程结束。


配置

Capybara 需要 Ruby 1.9.3+。在 Gemfile 中添加以下一行,然后运行 bundle install

gem'capybara'

Rails 应用可以在 helper 文件中加上这么一行:

require'capybara/rails'

Rack 应用:

Capybara.app = MyRackApp

如果需要测试 javascript 或进行远程测试,还需要配置驱动。

Capybara 可以和 Cucumber、RSpec、Test::Unit、MiniTest::Spec配合使用。FIXME

Capybara 默认使用 RackTest 驱动,此外还支持 Selenium、Capybara-webkit、Poltergeist。


DSL

Capybara 的 DSL 十分易懂。我们来看几个例子吧:

访问:

visit('/projects')

点击链接或按钮:

click_link('id-of-link')

click_button('Save')

表单:

fill_in('First Name', :with => 'John')

fill_in('Password', :with => 'Seekrit')

fill_in('Description', :with => 'Really Long Text...')

choose('A Radio Button')

check('A Checkbox')

uncheck('A Checkbox')

attach_file('Image', '/path/to/image.jpg')

select('Option', :from => 'Select Box')

XPath

page.has_selector?(:xpath, '//table/tr')

查找

find_field('First Name').value

find('#navigation').click_link('Home')

部分驱动支持执行 JavaScript:

page.execute_script("$('body').empty()")

result = page.evaluate_script('4 + 4');

项目主页

http://jnicklas.github.io/capybara/

https://github.com/jnicklas/capybara

相关文章
|
3月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
177 6
|
27天前
|
Java 测试技术 网络安全
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
67 0
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
|
1月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.10 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.10 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
212 3
|
2月前
|
安全 NoSQL Shell
web渗透-SSRF漏洞及discuz论坛网站测试
SSRF(服务器端请求伪造)是一种安全漏洞,攻击者可诱使服务端发起任意请求,进而探测或攻击内网系统。常用于端口扫描、访问内部服务、读取本地文件等。常见防御包括限制协议、域名和IP,但可通过302跳转、短地址等方式绕过。
202 1
web渗透-SSRF漏洞及discuz论坛网站测试
|
安全 JavaScript 前端开发
AppSpider 7.5.020 发布 - Web 应用程序安全测试
AppSpider 7.5.020 for Windows - Web 应用程序安全测试
69 0
|
2月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
442 11
|
2月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.9 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
340 0
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
|
4月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
474 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
3月前
|
机器学习/深度学习 存储 分布式计算
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证(211)
本文探讨了Java大数据与机器学习模型在金融风险压力测试中的创新应用。通过多源数据采集、模型构建与优化,结合随机森林、LSTM等算法,实现信用风险动态评估、市场极端场景模拟与操作风险预警。案例分析展示了花旗银行与蚂蚁集团的智能风控实践,验证了技术在提升风险识别效率与降低金融风险损失方面的显著成效。