多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Selenium+Python-Unittest多线程生成报告-自动化测试

更新时间:2022-04-01 09:22:55 作者:多测师 浏览:52

  selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了。

Selenium+Python-Unittest多线程生成报告-自动化测试

  环境必备:

  · python3.6 : BeautifulReport不支持2.7

  · tomorrow : pip install tomorrow安装

  · BeautifulReport : github下载后放到/Lib/site-packages/目录下

  BeautifulReport

  1.BeautifulReport下载地址:BeautifulReport

  2.下载方法:

  方法一 会使用git的直接用git下载到本地

  git clone https://github.com/TesterlifeRaymond/BeautifulReport

  方法二 点Clone or Download按钮,Download ZIP就能下载到本地了

  3.下载完之后,把BeautifulReport整个包放到python的/Lib/site-packages/目录下

  使用方法

  1.项目结构:

  case test开头的.py用例脚本

  report 放生成的html报告

  run_all.py 用于执行全部脚本

  2.单个测试脚本test_a.py参考

  # coding:utf-8

  import unittest

  from selenium import webdriver

  import time

  class Testaa(unittest.TestCase):

  u'''测试用例a的集合'''

  @classmethod

  def setUpClass(cls):

  cls.driver = webdriver.Firefox()

  def setUp(self):

  self.driver.get("https://www.cnblogs.com/yoyoketang/")

  def test_01(self):

  u'''用例1:用例1的操作步骤'''

  t = self.driver.title

  print(t)

  self.assertIn("悠悠", t)

  def test_02(self):

  u'''用例2:用例2的操作步骤'''

  t = self.driver.title

  print(t)

  self.assertIn("悠悠", t)

  def test_03(self):

  u'''用例3:用例3的操作步骤'''

  t = self.driver.title

  print(t)

  self.assertIn("悠悠", t)

  @classmethod

  def tearDownClass(cls):

  cls.driver.quit()

  if __name__ == "__main__":

  unittest.main()

  3.run_all代码

  # coding=utf-8

  import unittest

  from BeautifulReport import BeautifulReport

  import os

  from tomorrow import threads

  # 获取路径

  curpath = os.path.dirname(os.path.realpath(__file__))

  casepath = os.path.join(curpath, "case")

  if not os.path.exists(casepath):

  print("测试用例需放到‘case’文件目录下")

  os.mkdir(casepath)

  reportpath = os.path.join(curpath, "report")

  if not os.path.exists(reportpath): os.mkdir(reportpath)

  def add_case(case_path=casepath, rule="test*.py"):

  '''加载所有的测试用例'''

  discover = unittest.defaultTestLoader.discover(case_path,

  pattern=rule,

  top_level_dir=None)

  return discover

  @threads(3)

  def run(test_suit):

  result = BeautifulReport(test_suit)

  result.report(filename='report.html', description='测试deafult报告', log_path='report')

  if __name__ == "__main__":

  # 用例集合

  cases = add_case()

  print(cases)

  for i in cases:

  print(i)

  run(i)

  以上内容为大家介绍了自动化测试中的Selenium+Python-Unittest多线程生成报告,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部