一 parametrize语法
parametrize(self,argnames, argvalues, indirect=False, ids=None, scope=None)
argnames
:参数名。
argvalues
:参数对应值,类型必须为list。如果只有一个参数,里面则是值的列表:如:@pytest.mark.parametrize("username", ["yy", "yy2", "yy3"])。如果有多个参数,则需要用元组来存放值,一个元组对应一组参数的值,如:@pytest.mark.parametrize("name,pwd", [("yy1", "123"), ("yy2", "123"), ("yy3", "123")])。
indirect
:如果设置成True,则把传进来的参数当函数执行,而不是一个参数。
ids
:用例的ID,传一个字符串列表,用来标识每一个测试用例,自定义测试数据结果,增加可读性。
以上简单复习一下 parametrize语法
二、创建数据库连接
import pymysql
#建立数据库连接
with pymysql.connect(host="localhost",user="root",password="",database="tmp") as db:
#使用cursor()方法建立一个游标对象 cursor
cursor= db.cursor()
cursor1 =db.cursor()
sql = "SELECT una,psw,txt FROM ceshiren"
sql1 = "SELECT username,password,txt FROM stu"
try:
cursor.execute(sql) #查询ceshiren
cursor1.execute(sql1) #查询stu
results = cursor.fetchall()
results1 = cursor1.fetchall()
table_list = list(results)
te_pass = list(results1)
print(table_list)
print(te_pass)
except:
print("发生错误,无法查询")
解释一下参数:
host="服务器名称:这是本机localhost",user="用户名",password="密码",database="所用的库名称"
我们先看 一下这张表的结构
一段测试用例代码:可以参考一下
@pytest.mark.parametrize('username,password,txt',table_list)
def test01(self,username,password,txt):
self.driver.find_element('xpath', '//*[@id="app"]/div[3]/div[4]').click() # 点击我的
self.driver.implicitly_wait(2)
self.driver.find_element('xpath', '/html/body/div/div[2]/div[2]/div[1]/div[1]/input').send_keys(username)
self.driver.find_element('xpath', '/html/body/div/div[2]/div[2]/div[2]/div[1]/input').send_keys(password)
self.driver.find_element('xpath', "/html/body/div/div[2]/div[2]/button").click()
s1 =self.driver.find_element('xpath','/html/body/div[2]/div').text
time.sleep(2)
assert s1 == txt
@pytest.mark.parametrize('username,password,txt',table_list)
创建参数名,然后下方引入名字不要错,传入table_list表单
有不会的给我留言吧