阅读了如此多的答案和论坛后,我感到困惑。有人说:

Selenium Webdriver是浏览器自动化工具,它与数据库无关。

另一些显示了如何将Selenium连接到的JAR和代码。数据库,我们可以使用Selenium Webdriver测试数据库。

所以我真的很想知道我们可以使用Selenium进行数据库测试吗?如果是,那么它支持哪些数据库工具,如Mysql,SQL Server,Oracle ...

,如果硒不适合进行数据库测试,请向我推荐最好的数据库测试工具。

评论

Selenium确实是浏览器UI工具。与数据库测试无关。本文列出了一些工具,请参阅第4.4节:agiledata.org/essays/databaseTesting.html

您在使用Java吗?那么jdbc是一个不错的选择

是的,我正在将Java用于硒。我正在测试的站点在SQL Server中具有数据库。

#1 楼

Selenium本身只是驱动Web浏览器的框架,但是您可以将其与一些代码结合起来,以检查和/或操纵被测应用程序使用的数据库。

如果将Selenium与编程语言一起使用,则可以将同一语言与数据库库结合使用来访问和更改数据库。支持的数据库取决于所使用的编程语言是否有可用的库,但是大多数语言都支持大多数数据库。

通常您使用单元测试框架来驱动测试,单元测试框架是用于安排状态(设置),执行操作(有或没有Selenium)并声明测试结果。

您可能要测试两件事,以使用Selenium验证数据库内容。


在Web应用程序中执行动作触发后,检查数据库状态是否正确
对于特定的数据集,Web应用程序会在其界面中正确显示数据

如果需要在没有Web应用程序的情况下测试数据库,那么这不是您要寻找的框架。

#2 楼

Selenium Webdriver是一个Web测试自动化框架,主要用于对应用程序前端部分(用户在浏览器中看到的那部分)进行功能测试。

由于此框架是开放的源代码,并且可以相对容易地扩展,有人可能已经实现了一些其他库来与数据库进行交互。但是,正如我已经说过的,这不是框架的主要目标。

我假设您不需要以非常特殊的方式测试数据库,因此我建议您看一下Robot Framework,它也是具有良好社区和较短学习曲线的Web测试自动化框架。

借助Robot Framework,您可以轻松地将“前端”测试与数据库测试结合起来,因为它已经具有可用的数据库库,因而扩展了它的功能,并且不需要您编写太多代码。编写自己的文件,以便按您需要的方式扩展框架的功能。此外,您可以使用Java或Python进行操作。

以下是Robot Framework数据库库的示例:


https://github.com/ThomasJaspers/ robotframework-dblibrary
http://franz-see.github.io/Robotframework-Database-Library/


#3 楼

Selenium WebDriver本身不能用于测试数据库,但是可以使用用于编写WebDriver测试代码的语言(例如C#或Java等)。

#4 楼

您编写的测试的目标是什么?

如果您正在测试数据库本身(例如,“我是否从运行这些查询中得到预期的结果?”),那么否,Selenium并不是您想要的。

如果您正在对Web界面进行数据驱动的测试(例如“ Web浏览器中的用户界面是否告诉我数据库是一样的东西?”),那么Selenium可以为您提供帮助,但这仅是您需要的东西。正如其他人所说,大多数语言都可以访问大多数数据库。因此,您需要执行以下操作:


直接在数据库中查询要检查的数据。这
是使用您所使用语言的工具完成的。
对数据进行任何操作,以便将其与浏览器中的内容进行比较。 。
使用Selenium来控制浏览器
并导航到您将在其中查看数据的网页。
将您在浏览器中看到的数据与从
数据库中提取的数据进行比较。


#5 楼

不会。Selenium可以自动执行浏览器。而已!您可以在SeleniumHQ
页面上进行检查。
以下SeleniumHQ页面的屏幕截图。



#6 楼

我总是在使用python进行硒测试中进行mysql数据库测试,这非常简单。

import MySQLdb
db = MySQLdb.connect(host="your_host",user="your_user",db="your_db",port=3306,passwd="your_password")

with db: 
    cur = db.cursor()
    cur.execute("select * from table1 limit 1")
    rows = cur.fetchone()
    first_column_content=rows[0]
    print first_column_content