#引导index
#!/usr/bin/python # -*- coding: utf-8 -*- ''' 自动化接口测试 by charlie liu ''' from selenium import webdriver #from selenium.webdriver.support.ui import WebDriverWait import time # 导入webdriver模块 from bs4 import BeautifulSoup as bs import unittest from lib.HTMLTestRunner import HTMLTestRunner from lib.Email import Mail from project.testWeb import WebTest if __name__ == '__main__': #接口测试和脚本cronTest # discover = unittest.defaultTestLoader.discover('./project', pattern='test*.py') # 存放报告的文件夹 report_dir = './report' # 报告命名时间格式化 now = time.strftime("%Y-%m-%d %H_%M_%S") # 报告文件完整路径 report_name = report_dir + '/' + now + 'result.html' with open(report_name, 'wb') as f: runner = HTMLTestRunner(stream=f, title="接口测试报告", description="", verbosity=2) runner.run(discover) f.close() #测试web
#!/usr/bin/python # -*- coding: utf-8 -*- ''' 自动化接口测试 by charlie liu ''' from selenium import webdriver #from selenium.webself.support.ui import WebDriverWait import unittest import time class Logout(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome( r"C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.6\chromedriver.exe") self.driver.implicitly_wait(5) self.driver.get("http://xxx.xxx.com") print('start') def tearDown(self): print('end') class WebTest(Logout): #是否能打开网站,打开时间 def test_index(self): assert len(self.driver.find_elements_by_css_selector('.mid-cont .part')), "判断数据存在条数:" count = len(self.driver.find_elements_by_css_selector('.mid-cont .part')) self.assertEqual(count, 30) #是否有左侧分类,大分类数量 def test_fenlei(self): self.test_index() assert len(self.driver.find_elements_by_css_selector('.left-nav .part')), "判断分类条数:" category_counts = len(self.driver.find_elements_by_css_selector('.left-nav .part')) self.assertEqual(6 ,category_counts) #可以判断下分类数量什么的省略了 #首页列表数量(第一页) def test_index_list(self): assert len(self.driver.find_elements_by_css_selector('.mid-cont .part')), "判断文章列表条数:" list_counts = len(self.driver.find_elements_by_css_selector('.mid-cont .part')) self.assertEqual(30,list_counts) #焦点图数量或存在与否 def test_index_focus(self): assert len(self.driver.find_elements_by_css_selector('.slider .images li')), "判断焦点图条数:" list_counts = len(self.driver.find_elements_by_css_selector('.slider .images li')) self.assertEqual(6 , list_counts) print(list_counts) # 可以判断下焦点图是否存在省略了 #热点数量 def test_index_hot(self): i = 0 assert len(self.driver.find_elements_by_css_selector('.hot-article ul li')), "判断热点图条数:" focus_counts = len(self.driver.find_elements_by_css_selector('.hot-article ul li')) self.assertEqual(5 , focus_counts) print(focus_counts) #查看SEO信息是否完整 def test_index_seo(self): assert self.driver.title,'标题是否存在:' self.assertIsNotNone(self.driver.title) assert self.driver.find_element_by_xpath("//meta[@name='keywords']"),'关键词是否存在:' self.assertIsNotNone(self.driver.find_element_by_xpath("//meta[@name='keywords']")) assert self.driver.find_element_by_xpath("//meta[@name='description']"), '描述是否存在:' self.assertIsNotNone(self.driver.find_element_by_xpath("//meta[@name='description']")) #测试表单递交 def test_index_submit(self): assert self.driver.find_element_by_xpath("//input[@name='kw']"), '搜索是否存在:' self.assertIsNotNone(self.driver.find_element_by_xpath("//input[@name='kw']")) elem = self.driver.find_element_by_xpath("//input[@name='kw']") elem.send_keys(r"轻度地贫") # 提交表单 self.driver.find_element_by_xpath("//*[@class='button']").click(),'点击是否成功:' assert self.driver.title.encode("utf-8") ,"递交是否成功" title = self.driver.title.encode("utf-8") self.assertIn("搜索",title) time.sleep(5) #测试接口
#!/usr/bin/python # -*- coding: utf-8 -*- ''' 自动化接口测试 by charlie liu ''' import unittest import json import requests class Logout(unittest.TestCase): def setUp(self): print('start') def tearDown(self): print('end') class Run(Logout): # 科室判断节口 def test_keshi_api(self): param = {"s": "白癜风怎么治疗", "a": 2} url = 'http://dept.xxx.net/api/auto' r = requests.get(url, params=param) r = r.json() self.assertEqual(r["status"], 200) # 关键词相关接口 def test_relate(self): param = {"word": "白癜风"} url = 'https://xxx.com/api/GetListByWord' r = requests.get(url, params=param) r = r.json() self.assertIsNotNone(r) # 最新新闻接口 def test_news(self): url = 'https://xxx.com/api/news' r = requests.get(url) r = r.json() self.assertIsNotNone(r) # 最新新闻接口 def test_yao_news(self): url = 'https://xxx/api/YaoNews' r = requests.get(url) r = r.json() self.assertIsNotNone(r) if __name__ == '__main__': unittest.main() #内库 包含HTMLTestRunner