在接口自动化测试中,数据断言是非常重要的一部分。而在实际的测试过程中,数据库的验证数据是非常常见的需求。本文将详细介绍如何使用Python编写一个MySQL数据库数据断言的封装。
1. 环境准备
首先,我们需要准备好Python开发环境和MySQL数据库。确保已经安装好Python,并安装好pymysql库。另外,需要确保MySQL数据库已经安装好,并且已经创建好需要测试的数据库和表。
2. 封装数据库操作类
接下来,我们需要封装一个数据库操作类,用来连接数据库并执行数据库操作。创建一个名为MysqlDB的Python类,并引入pymysql库,代码如下:
import pymysql
class MysqlDB:
def __init__(self, host, port, user, password, database):
# 建立数据库连接
self.conn = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
database=database,
charset='utf8'
)
# 创建游标对象
self.cursor = self.conn.cursor()
def execute_sql(self, sql):
# 执行sql语句
self.cursor.execute(sql)
# 提交数据库操作
self.conn.commit()
def close(self):
# 关闭游标和数据库连接
self.cursor.close()
self.conn.close()
在`__init__`方法中,我们通过pymysql库的`connect`方法建立了数据库连接,并创建了游标对象。在`execute_sql`方法中,我们执行了传入的SQL语句,并通过`commit`方法提交了数据库操作。在`close`方法中,我们关闭了游标和数据库连接。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】
3. 封装数据断言方法
接下来,我们需要封装一个数据断言的方法,用于比较数据库查询结果和期望的结果是否一致。在MysqlDB类中新增一个`assert_data`方法,代码如下:
def assert_data(self, sql, expected_result):
# 执行sql语句
self.cursor.execute(sql)
# 获取查询结果
actual_result = self.cursor.fetchall()
# 比较查询结果和期望的结果
assert actual_result == expected_result, f"数据库查询结果与期望结果不一致,实际结果为:{actual_result}"
在`assert_data`方法中,我们首先执行传入的SQL语句,并通过`fetchall`方法获取查询结果。然后,我们使用断言来判断查询结果和期望的结果是否一致,如果不一致,则抛出异常。
4. 封装断言方法
如果我们希望在断言失败时抛出自定义异常信息,可以封装一个自定义的断言方法。可以创建一个名为`assert_equal`的方法,代码如下:
def assert_equal(self, actual, expected, message=None):
assert actual == expected, message
在`assert_equal`方法中,我们使用断言来判断实际值和期望值是否一致,如果不一致,则抛出自定义的异常信息。
5. 使用示例
现在,我们可以通过以下示例代码来演示如何使用封装好的数据库数据断言方法:
# 创建MysqlDB对象
db = MysqlDB(host='localhost', port=3306, user='root', password='123456', database='test')
# 执行sql语句
sql = "SELECT * FROM user WHERE id = 1"
expected_result = ((1, 'Alice', 18),)
db.assert_data(sql, expected_result)
# 断言实际值和期望值是否一致
actual = 3
expected = 3
db.assert_equal(actual, expected, message='实际值与期望值不一致')
# 关闭数据库连接
db.close()
在示例代码中,我们首先创建了一个MysqlDB对象,然后执行了一个查询语句,并调用了`assert_data`方法进行数据断言。接着,我们使用`assert_equal`方法对实际值和期望值进行断言。最后,我们关闭了数据库连接。
总结:
通过以上步骤,我们成功封装了一个MySQL数据库数据断言的方法,可以在接口自动化测试中使用。使用封装后的方法,可以方便地连接数据库、执行SQL语句,并进行数据断言和断言失败时抛出自定义异常信息。这样可以提高测试效率和可维护性。
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!