直到几个月来一直在寻找这个问题的答案,仍然不知道如何实际做到这一点 - 如何自动化在浏览器中运行的测试? Selenium测试在后端运行,当然可以自动化,我们现在正在这样做。最近,我的任务是自动化基于浏览器的单元测试,我的知识差距很大 -
我不知道如何实际做到这一点 -
例如 - 自动化测试运行器如何收集测试结果并退出在浏览器中运行的(单元)测试代码?任何人都可以解释这实际上是如何完成的以及实现这一目标的步骤吗?
Karma是实现这一目标的最佳工具吗?
答案 0 :(得分:4)
您可以使用http://phantomjs.org/。 phantomjs是一个无头的webbrowser,你可以看到没有gui的fullstack webbrowser,可用作库。与业力一起,您可以执行单元测试,而无需依赖任何GUI实现 这是一个博客帖子,它解释了这种情景http://orizens.com/wp/topics/my-setup-for-testing-js-with-jasmine-karma-phantomjs-angularjs/
中的不同组件意味着您可以在无头Linux服务器上执行您的业力单元测试。
澄清:
答案 1 :(得分:1)
你可以使用黄瓜。如果您有20个测试用例,则需要执行。
您可以创建包含所有方案的要素文件。 可以在不同的包中定义Runner类和Method,了解需要执行的操作。假设你有一个场景 1.打开浏览器。 2.输入谷歌链接。 3.使用凭据登录。
使用上述信息创建一个功能文件。
使用Cucumber跑步者课程。并创建包方法,如
@When("^Open Browser$")
public void open_Browser() throws Throwable {
WebDriver driver = new FirefoxDriver();
driver.get("www.google.com");
}
同样,您可以创建不同的方法来运行。要运行jar,可以使用命令行界面技术。
答案 2 :(得分:1)
精彩文章LINK 基本: 这适用于Python自动化,您需要具备一些以前的知识/经验。
pip install selenium
pip install nose
上面应该在cmd或shell中执行......
对于此测试,我们将在http://www.aweber.com打开AWeber网站 使用Firefox,并确保页面标题是“AWeber电子邮件营销服务和小型企业的软件解决方案”。
import unittest
from selenium import webdriver
class AweberTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Firefox()
def test_title(self):
self.driver.get('https://www.aweber.com')
self.assertEqual(
self.driver.title,
'AWeber Email Marketing Services & Software Solutions for Small Business')
@classmethod
def tearDownClass(cls):
cls.driver.quit()
使用nose运行测试:
nose aweber.py
接下来的测试,点击元素:
self.driver.get('https://www.aweber.com')
order_tab = self.driver.find_element_by_css_selector('#ordertab>a')
order_tab.click()
我们有很多选择器可以使用find_element_by_(css / xpath / name / id) - Locating elements
在这种情况下,我们使用点击方法,但我们也可以 .send_keys("asdf")
,滚动,使用
browser.execute_script("alert('I canNNNNN not do javascript')")
完整代码示例: LINK-Pastebin