web自动化实现多个用户登录某系统,使用python代码实现
首先创建读取测试数据的方法,代码如下:
import unittest
from time import sleep
from ddt import ddt, data #引入ddt驱动
from selenium import webdriver
from xlrd import open_workbook #引入读取Excel文件的标准库
import baseconfig as fp # 公共读取本地路径方法
xlsfile = fp.basedir + '\\a_ddt\\RunList.xlsx'
#该方法可以独立封装,在这里调用
def getExcelTestData():
openExcelFile = open_workbook(xlsfile)
# 打开Excel文件
getSheet = openExcelFile.sheet_by_name("Sheet2")
# 获取工作表
rowNumber = getSheet.nrows
# 获取行数
dataList = []
# 数据List
for i in range(1, rowNumber):
# 从第二行开始遍历
dataList.append(getSheet.row_values(i))
# print("数据:"+str(dataList))
# 把每个单元格的数值存放到dataList中
return dataList
@ddt
class LoginPortal(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.base_url = "你要访问系统的地址"
self.driver.get(self.base_url)
self.driver.maximize_window()
sleep(3)
@data(*getExcelTestData())
# 传递数据
def test_loginPortal(self, data):
#Excel中的入参
userName, adminId,password,checkTxt = tuple(data) #checkTxt 该参数为Excel的预期结果
# searchTerm = tuple(data)
driver = self.driver
driver.find_element_by_id('username').send_keys(userName)
driver.find_element_by_id('oprId').send_keys(adminId)
driver.find_element_by_id('passwdDiv_ocx').send_keys(password)
driver.find_element_by_id('loginBtn').click()
sleep(3)
# responseText = driver.find_element_by_id("queryList").text
responseText = driver.find_element_by_link_text("账户首页").text
print(responseText)
self.assertEqual(responseText, checkTxt) # 页面元素与Excel预期结果是否匹配
print('登录成功,我将休息3s后退出....')
def tearDown(self):
self.driver.close()
self.driver.quit()
if __name__ == '__main__':
unittest.main()
我们看下Excel的内容:
运行结果: