我正在使用selenium web驱动程序为python编写测试用例。 测试用例有多种方法,如:
class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver1 = webdriver.Firefox()
cls.driver1.maximize_window()
def test_1(self):
.....
.....
def test_2(self):
....
....
@classmethod
def tearDownClass(cls):
cls.driver1.quit()
当我尝试从pycharm或终端运行该文件时,它会随机执行这些方法。 我想要一个顺序执行,所以test_1()应该在test_2()之前运行。 请帮我.. 提前致谢。
答案 0 :(得分:1)
在单个浏览器实例中运行多个测试的语法是正确的;虽然它不以随机顺序运行测试,但它确实以数字或字母顺序运行测试。
例如: class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
.....
def test_1(self): #or def test_a
print 'test1'
def test_3(self): #or def test_c
print 'test2'
def test_2(self): #or def test_b
print 'test3'
@classmethod
def tearDownClass(cls):
.......
测试执行顺序:升序,即test_1(test_a)将首先执行>接下来是test_2(test_b)和更高版本test_3(test_c)....不管' def test_ (self)'( - 字母或数字)都放在代码中。
O / P: TEST_1 好的\ n test_2 ..... TEST3 好的\ n test_3 ..... TEST2 确定
答案 1 :(得分:-1)
使用黄瓜和Selenium,它有特征文件,其中可以给出步骤定义,所有步骤都像迷你测试一样,按照它们写入的顺序执行。它还具有非常外行可读的写入步骤格式, Gherkin 格式。
应该像魅力一样工作。
这是一个例子
Feature: User Placing an order via different methods
Scenario: User tries to place an order for test item
Given User is on Home Page
When User Searches for test item
Then Open the search item page
And User adds the item to cart
And User proceeds to book
或强>
优先考虑您的测试方法,这个优先级在方法定义的上方给出,至少在Java中,当您将Selenium与TestNG一起使用时就是这种情况。不确定它是如何在Python中完成的。如果我们优先考虑这些定义,那么它们肯定会被执行,并牢记方法的优先级。