import pytest import allure import logging from utils.mysql_database_connection_utils import MysqlDBUtil class TestChaxun(): def mysql_connect(self): self.conn = MysqlDBUtil(host,port,user,password,db,charset) # def teardown_class(self): # self.conn.sql_close def test_chaxun(self): data=self.conn.query("SELECT * from stu WHERE name = '张三' ") print(data)
时间: 2024-04-28 17:21:07 浏览: 156
你对代码进行了修改,现在在 mysql_connect 方法中使用了 MysqlDBUtil 类的实例化对象来连接 MySQL 数据库,并传递了必要的参数(host,port,user,password,db,charset)。这样可以确保数据库连接成功,并可以执行 query 方法来查询数据。
这个实现在大多数情况下可以工作,但是你需要确保传递的参数是正确的,并且数据库已经正确地配置,才能使测试代码成功运行。另外,你可能需要在代码中添加一些错误处理代码,以便在出现错误时能够捕获并记录错误信息,从而更好地调试和修复问题。
相关问题
import pytest import allure import logging from utils.mysql_database_connection_utils import MysqlDBUtil class TestChaxun(): def mysql_connect(self): self.conn = MysqlDBUtil # def teardown_class(self): # self.conn.sql_close def test_chaxun(self): data=self.conn.query("SELECT * from stu WHERE name = '张三' ") print(data)
根据你的代码,我猜测你正在使用 pytest 和 allure 进行测试,并且你的测试代码中包含一个 TestChaxun 类,其中有一个名为 test_chaxun 的方法。这个方法中调用了一个叫做 mysql_connect 的方法,来连接 MySQL 数据库,并使用 MysqlDBUtil 类来进行数据库操作。在 test_chaxun 中,你使用了 query 方法来执行一个 SQL 查询,返回了符合条件的所有记录,并将结果打印出来。
不过,你的代码中有一个问题,就是在 mysql_connect 方法中,你没有实例化 MysqlDBUtil 类,而是直接将类名作为参数传递给了 conn 变量。你需要将这个变量赋值为 MysqlDBUtil 的实例,才能正确地连接数据库并进行操作。
import pytest import pymysql from utils.mysql_database_connection_utils import MysqlDBUtil class TestChaxun: data = [] def setup_method(self): self.mysql_connect() def teardown_method(self): if hasattr(self, "db") and self.db is not None: self.db.sql_close() def mysql_connect(self): self.db = MysqlDBUtil("localhost", "root", "123456", "sys", "utf8") def chaxun_data(self): assert self.db is not None data1 = self.db.query("SELECT zjhm from user") for i in range(0,1): sql = f"SELECT xingming FROM user where zjhm = '{data1[i][0]}'" TestChaxun.data = self.db.query(sql) from testcases.test_mysql_chaxun import TestChaxun class CS: data1 = TestChaxun.data print(type(data1))
这段代码定义了两个类:TestChaxun 和 CS。TestChaxun 类中有四个方法:setup_method、teardown_method、mysql_connect 和 chaxun_data。其中,setup_method 和 teardown_method 是 pytest 的钩子方法,分别在每个测试方法执行前和执行后调用;mysql_connect 方法用于连接 MySQL 数据库;chaxun_data 方法用于执行 SQL 查询并将查询结果存储在 TestChaxun 类的 data 属性中。
CS 类中定义了一个 data1 属性,其值为 TestChaxun 类的 data 属性。在 CS 类中还使用了 type() 函数来输出 data1 的类型。但是,由于 TestChaxun.data 属性在运行 chaxun_data 方法后才有值,因此在 CS 类中访问该属性时可能会出现值为 None 的情况。
阅读全文