UI自动化测试花费的成本较高,适用于以下场景
UI自动化项目结构如下
1.在configs\account.py中设置用户名和密码
username = "xiajing001"
password = "123456"
2.在configs\env.py中配置系统环境
# 配置环境变量
# test测试环境
# online线上环境
current_env = "test"
env_dict = {
"test":"https://",
"online":"https://"
}
if __name__ == '__main__':
print(env_dict[current_env])
3.在common\mydriver.py 中定义通用的driver和登录方法
要提前下载好和自己电脑chrome浏览器版本对应的chromedriver
http://npm.taobao.org/mirrors/chromedriver/
from selenium import webdriver
from UI.configs.env import env_dict,current_env
from UI.configs.account import username,password
class Driver:
def __init__(self): #初始化方法
self.driver = webdriver.Chrome()
#设置智能等待,最多等5秒
self.driver.implicitly_wait(5)
#最大化窗口
self.driver.maximize_window()
#访问到项目网址
self.driver.get(env_dict[current_env])
#登录
self.login()
def login(self):
# 输入用户名
self.driver.find_element_by_id().send_keys(username)
# 输入密码
self.driver.find_element_by_id().send_keys(password)
# 点击登录
self.driver.find_element_by_id().click()
if __name__ == '__main__':
Driver()
?4.在test_case中写测试用例
import allure
from UI.common.myDriver import Driver
import time
class TestUserSearch:
def test_user_search(self):
with allure.step("打开浏览器,登录系统"):
#打开一个空白浏览器
my_driver = Driver()
#对当前屏幕截图.截图保存到report文件夹中
my_driver.driver.get_screenshot_as_file("./report/1.png")
#将上一步截图附加进测试报告
allure.attach.file("./report/1.png",attachment_type=allure.attachment_type.PNG)
with allure.step(("点击系统用户列表")):
#点开XX系统
my_driver.driver.get("http://")
time.sleep(3)
#点击用户管理
my_driver.driver.find_element_by_link_text("用户管理").click()
time.sleep(1)
# 点击用户列表
my_driver.driver.find_element_by_link_text("用户列表").click()
time.sleep(1)
# 对当前屏幕截图.截图保存到report文件夹中,文件名相同会覆盖之前的图片,但是都会加到测试报告中
my_driver.driver.get_screenshot_as_file("./report/1.png")
# 将上一步截图附加进测试报告
????????????allure.attach.file("./report/1.png",attachment_type=allure.attachment_type.PNG)
5.在run.py中执行测试用例
import allure,os
if __name__ == '__main__':
pytest.main(['-sq','--alluredir','./report/tmp']) #-s输出打印信息,-q简化
#使用allure产生报告
os.system("allure serve ./report/tmp")
6.查看报告
?
|