记:运行测试case遇到的问题!


例:如下是针对一个login类写的测试case:

class
TestLoginPia(unittest.TestCase): def setUp(self): #初始化 self.s = requests.session() #初始化session()代码浏览器 self.f = TestPia(self.s) #再初始化类,并默认调用self.s def tearDown(self): #结束,关闭 self.s.close() def test_login_case01(self): '''用例case01:判断登录是否成功:账号正确,密码正确''' x = self.f.login(user='qika',pwd='qika123456') #利用初始化的对象,调用登录方法 result = self.f.is_login_success(x) #同理,再调用判断方法 print(result) #打印判断结果 if __name__ == '__main__': unittest.main() 复制代码

问题:++++++++++++++++++++++++++++++++++++++++

1、case当中使用setUpClass方法时会存在一个问题:

 有多个case存在时,第一个case登陆成功,导致session一直保存,以致于第二个case甚至后面的其他case在登录时,都会使用第一个case留下的session;那么后面就算有case运行失败了,那你也还是看不出来,因为使用的是第一个case留下的session)

解决方法:在teardown中,去清理session,cookie信息。如:s.cookies.clear_session_cookies()

 2、case当中使用setup方法时会存在一个问题:

每次用例都会运行并启用一个session,当存在多个session时就可能会报错:ResourceWarning: unclosed <socket.socket(不管它也没事,也可以解决掉)

解决方法:在teardown中,清理session信息。如:  self.s.close()

原文地址:https://www.cnblogs.com/QiKa/p/13618544.html