操作步骤是一样的,仅仅是测试数据不同的测试用例,可以用上参数化,可以节省很多代码
- pytest.fixture() 允许fixture有参数化功能(后面讲解)
- @pytest.mark.parametrize 允许在测试函数或类中定义多组参数和fixtures
- pytest_generate_tests 允许定义自定义参数化方案或扩展(拓展)
from selenium import webdriver
import allure
class TestABC:
def setup(self):
self.driver = webdriver.Chrome()
self.driver.get('http://shop.com/logininfo.html')
def teardown(self):
time.sleep(3)
self.driver.quit()
def test_loginSuccess01(self):
self.driver.find_element_by_name('accounts').send_keys('xiuxiu')
self.driver.find_element_by_name('pwd').send_keys('123456')
self.driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[2]/button').click()
def test_loginFail02(self):
self.driver.find_element_by_name('accounts').send_k