请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

@paramunittest.parametrized 参数化跟tearDownClass有冲突吗

import time
import unittest
import paramunittest

from chapter3.po_demo import SearchKW


# class Q(unittest.TestCase, SearchKW):
#
#     def test_searh_kw(self):
#         self.get()
#         self.search_kw()
#         assert self.element(self.searchInput).get_attribute('value') == 'hello'
#         # time.sleep(5)
#         self.driver.quit()


@paramunittest.parametrized(
    {'keyWords': '111', 'expect': '111'},
    {'keyWords': '222', 'expect': '222'}
)
class ParamTest(unittest.TestCase, SearchKW):
    """支持参数化测试样例"""

    @classmethod
    def setUpClass(cls) -> None:
        print('*********************in setUpClass**********************************')
        cls.cls_get()

    def setParameters(self, keyWords, expect):

        self.keyWords = keyWords
        self.expect = expect

    def test_search_kw(self):
        # self.get()
        self.search_kw(key_words=self.keyWords)
        # assert self.element(self.searchInput).get_attribute('value') == self.expect
        # self.assertEqual(self.element(self.searchInput).get_attribute('value'), self.expect)
        time.sleep(3)

    @classmethod
    def tearDownClass(cls) -> None:
        print('&&&&&&&&&&&&&&&&&&&&&&in tearDownClass&&&&&&&&&&&&&&&&&&&')
        cls.driver.quit()



if __name__ == '__main__':
    unittest.main()


1.第二次用参数化执行的时候报错,我猜是tearDownClass把session关闭导致,可是通过打印日志得知,setUpClass tearDownClass每个参数都会执行一次,为了执行第一个参数的tearDownClass会影响第二个参数的执行呢?请问老师该怎么改?

谢谢

正在回答 回答被采纳积分+3

1回答

托尼老师 2021-12-23 14:00:16

参数化时,一条完整的用例,从前置处理到后置处理,都会从参数中取值,最终执行完成。

你的测试类的流程是:打开网页,输入参数检索,关闭浏览器。

当第一组测试数据执行完成后,浏览器被关闭,这时第二组数据执行时,已经没有浏览器会话去打开网页了,必然报错。


要解决这个问题,可以修改tearDownClass,使得每次执行完成后,网页回到初始状态。

0 回复 有任何疑惑可以回复我~
  • 提问者 你的转身 #1
    哪测试类执行完毕,不关闭浏览器吗?
    回复 有任何疑惑可以回复我~ 2021-12-23 17:09:17
  • 托尼老师 回复 提问者 你的转身 #2
    有两个方法解决:1、可以在测试类中自己编写一个最终的关闭浏览器的方法,然后在最后一条case执行完成后调用这个方法即可;2、可以在module级别新建函数tearDownModule,在里面实现module级别的执行后置操作,譬如关闭浏览器。
    回复 有任何疑惑可以回复我~ 2021-12-29 17:17:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信