python实现ecshop开源商城登陆自动化测试
2022-07-20 14:23:40
237
Python
软件测试
自动化脚本
python实现ecshop开源商城账号登陆自动化测试,需求:提取excel表格里的测试数据进行自动化登陆账号,判断实际结果与预期结果是否匹配。
导入包:
```python
import xlrd
from selenium import webdriver
from time import sleep
```
获取自动化测试数据:
```python
def get_test_data(path):
date = xlrd.open_workbook(path)
sheet_names = date.sheet_names()
table = date.sheet_by_name(sheet_names[0])
rows = table.nrows
for i in range(1, rows):
row_content = table.row_values(i)
tcid = (row_content[0])
username = (row_content[1])
password = int(row_content[2])
expected = (row_content[3])
test_case(tcid, username, password, expected)
```
测试用例部分:
```python
def test_case(tcid, username, password, expected):
driver = webdriver.Chrome()
driver.get('http://localhost/user.php')
sleep(4)
driver.find_element_by_name('username').send_keys(username)
sleep(2)
driver.find_element_by_name('password').send_keys(password)
sleep(2)
driver.find_element_by_name('submit').click()
sleep(4)
a = isElementExist(driver, '/html/body/div[6]/div[2]/div/div/div/font')
if a:
b = "登陆成功"
if expected == b:
print(tcid + "\t预期结果为:" + expected + ",实际结果:登陆成功。测试结果Pass")
else:
print(tcid + "\t预期结果为:" + expected + ",实际结果:登陆失败。测试结果Fail")
else:
b = "登陆失败"
if expected == b:
print(tcid + "\t预期结果为:" + expected + ",实际结果:登陆失败。测试结果Pass")
else:
print(tcid + "\t预期结果为:" + expected + ",实际结果:登陆成功。测试结果Fail")
driver.quit()
```
异常处理:
```python
def isElementExist(a, element):
flag = True
driver = a
try:
driver.find_element_by_xpath(element)
return flag
except:
flag = False
return flag
```
执行测试:
```python
if __name__ == '__main__':
get_test_data("D:\\MY_TEST\\selenium\\login\\info.xlsx")
```
测试数据:

最后:
**人生苦短,我用python.....** 哈哈继续努力学习!