1 import unittest
2 import requests
3 import urllib3
4 urllib3.disable_warnings()
5 import warnings # 解决错误 ResourceWarning: Enable tracemalloc to get the object allocation traceback
6 from lxml import etree
7 from loginfuction import login # 多个函数中间可用逗号隔开. from time import * 导入全部功能
8
9 # 数据共享 #44 #50 本用例数据需在下一用例调用, 全局变量: globals()["result"] = userinfo_1_result
10
11 class TestUserInfo(unittest.TestCase):
12
13
14 @classmethod # 所有的测试用例之前, 只执行一次.
15 def setUpClass(cls): # 本函数内的变量如果需要在其它函数使用, 需要在变量名前加 cls.变量名
16 # 解决错误 ResourceWarning: Enable tracemalloc to get the object allocation traceback
17 warnings.simplefilter('ignore',ResourceWarning)
18 cls.s = requests.session()
19 cls.s.verify = False
20 # 解决InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.
21 requests.packages.urllib3.disable_warnings()
22 cls.r = login(cls.s)
23
24
25 def setUp(self): #每个用例之前都会执行
26 self.newstr = "需要在其它函数调用, 需要在变量前加 self.newstr"
27
28
29 @classmethod
30 def tearDownClass(cls): # 所有测试用例之后, 只执行一次
31 cls.s.close() # 关闭会话
32
33
34 def test_userinfo_1(self):
35
36 return_html = etree.HTML(self.r.text)
37 username_nodes = return_html.xpath('.//*[@class="username"]')
38 result = username_nodes[0].xpath('.//text()')[0]
39 exp_result = 'xx@hichina.com'
40 print(self.newstr)
41
42 userinfo_1_result = "用例1获取到的结果"
43 # 数据共享 本用例数据需在下一用例调用, 全局变量: globals()["result"] = userinfo_1_result
44 globals()["result"] = userinfo_1_result
45 # 断言 实际结果 = 预期结果
46 assert result == exp_result
47
48
49 def test_userinfo_2(self):
50 userinfo_2_result = globals()["result"]
51 print('userinfo_2_result) # 用例1获取到的结果
52
53
54 # 如果在当前脚本执行,执行下方的代码. 如果当前脚本是被其它代码导入,则不执行下列代码. __name__ 名字 __main__ 自己
55 if __name__ == '__main__':
56 unittest.main()