EXCEL写入以上数据,然后save as baidu_data.CSV文件
importcsvimportcodecsimportunittestfrom itertools importislicefrom selenium importwebdriverimporttimefrom HTMLTestRunner importHTMLTestRunnerclassTestBaidu(unittest.TestCase):
@classmethoddefsetUpClass(cls):
cls.driver=webdriver.Chrome()
cls.base_url= "https://www.baidu.com"cls.test_data=[]
with codecs.open(‘baidu_data.csv‘, ‘r‘, ‘utf_8_sig‘) as f:
data=csv.reader(f)for line in islice(data,1,None):
cls.test_data.append(line)
@classmethoddeftearDownClass(cls):
cls.driver.quit()defbaidu_search(self, search_key):
self.driver.get(self.base_url)
self.driver.find_element_by_id("kw").send_keys(search_key)
self.driver.find_element_by_id("su").click()
time.sleep(2)deftest_search_selenium(self):
self.baidu_search(self.test_data[0][1])deftest_search_unittest(self):
self.baidu_search(self.test_data[1][1])deftest_search_parameterized(self):
self.baidu_search(self.test_data[2][1])if __name__=="__main__":
suit=unittest.TestSuite()
suit.addTest(TestBaidu("test_search_selenium"))
suit.addTest(TestBaidu("test_search_unittest"))
suit.addTest(TestBaidu("test_search_parameterized"))
now_time= time.strftime("%Y-%m-%d %H_%M_%S")
with open(now_time+ "Baidu_search.html", "wb") as fp:
runner= HTMLTestRunner(stream=fp,title="百度搜索测试报告", description="运行环境:win10, Chrome浏览器")
runner.run(suit)
fp.close()
二、通过 parameterized参数化
importunittestfrom selenium importwebdriverimporttimefrom HTMLTestRunner importHTMLTestRunnerfrom parameterized importparameterizedclassTestBaidu(unittest.TestCase):
@classmethoddefsetUpClass(cls):
cls.driver=webdriver.Chrome()
cls.base_url= "https://www.baidu.com"
defbaidu_search(self, search_key):
self.driver.get(self.base_url)
self.driver.find_element_by_id("kw").send_keys(search_key)
self.driver.find_element_by_id("su").click()
time.sleep(2)#通过parameterized实现参数化
@parameterized.expand([("case1","selenium"),("case2","unittest"), ("case3","parameterized"),])deftest_search(self,name,search_key):
self.baidu_search(search_key)
self.assertEqual(self.driver.title,search_key+ "_百度搜索")
@classmethoddeftearDownClass(cls):
cls.driver.quit()if __name__=="__main__":
suit=unittest.TestSuite()#添加整个测试类
suit.addTests(unittest.TestLoader().loadTestsFromTestCase(TestBaidu))
now_time= time.strftime("%Y-%m-%d %H_%M_%S")
with open(now_time+ "Baidu_search.html", "wb") as fp:
runner= HTMLTestRunner(stream=fp,title="百度搜索测试报告", description="运行环境:win10, Chrome浏览器",verbosity=2)
runner.run(suit)
fp.close()
= RESTART: C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\Baidu_search.py
ok test_search_0_case1 (__main__.TestBaidu)
ok test_search_1_case2 (__main__.TestBaidu)
ok test_search_2_case3 (__main__.TestBaidu)
原文:https://www.cnblogs.com/yijierui/p/13526703.html