自动化测试模型——模块化与参数化

含义

在创建函数或方法时设置参数,使之可根据不同的参数执行相应操作。

实例

创建一个网易邮箱的测试脚本test_mail.py:

	from time import sleep
	from selenium import webdriver
	
	dri = webdriver.Chrome()
	dri.get("http://mail.163.com")
	
	# 登录
	sleep(2)
	dri.find_element_by_id("switchAccountLogin").click()
	login_frame = dri.find_element_by_css_selector(
	    'iframe[id^="x-URS-iframe"]')  # 定位嵌套表单
	dri.switch_to.frame(login_frame)  # 切换表单
	# dri.find_element_by_name("email").clear()
	dri.find_element_by_name("email").send_keys("username")
	# dri.find_element_by_name("password").clear()
	dri.find_element_by_name("password").send_keys("password")
	dri.find_element_by_id("dologin").click()
	sleep(5)
	
	# 退出
	dri.find_elements_by_link_text("退出").click()
	
	dri.quit()

假设要实现一个邮箱的自动化测试项目,每条用例都需要有登录和退出操作,可创建一个新的module.py来存放登录和退出操作。

	class Mail:
	
	    def __init__(self, driver):
	        self.driver = driver
	        
	    def login(self):
	        self.driver.find_element_by_id("switchAccountLogin").click()
	        login_frame = self.driver.find_element_by_css_selector(
	            'iframe[id^="x-URS-iframe"]')  # 定位嵌套表单
	        self.driver.switch_to.frame(login_frame)  # 切换表单
	        self.driver.find_element_by_name("email").send_keys("username")
	        self.driver.find_element_by_name("password").send_keys("password")
	        self.driver.find_element_by_id("dologin").click()
	        
	    def logout(self):
	        self.driver.find_element_by_link_text("退出").click()

修改test_mail.py,使调用Mail类的方法。

	mail = Mail(dri)
	mail.login()
	mail.logout()

与未修改前功能一致。
若需求是测试登录功能,可将测试数据(账号密码)参数化,调用Mail的方法即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章