zoukankan      html  css  js  c++  java
  • 【原创】python+selenium,用xlrd,读取excel数据,执行测试用例

     1 # -*- coding: utf-8 -*-
     2 import unittest
     3 import time
     4 from selenium import webdriver
     5 import xlrd,xlwt
     6 import HTMLTestRunner
     7 from openpyxl import load_workbook
     8 class mylogintest(unittest.TestCase):#定义一个mylogintest类继承unittest.TestCase类
     9     '''打开百度测试'''
    10     # @classmethod
    11     # def tearDownClass(cls):#用例执行后的初始化工作
    12     #      print('结束测试')
    13 
    14     def setUp(self):#用例执行前的初始化工作
    15         print("开始测试")
    16         self.driver = webdriver.Firefox()
    17 
    18     def tearDown(self):#用例执行后的初始化工作
    19         print("结束测试")
    20         self.driver.quit()
    21 
    22     def testopenBD(self):
    23         '''打开百度'''
    24         book = xlrd.open_workbook("mylogintest.xlsx")  # 新建文件对象
    25         sheet = book.sheet_by_name("Sheet1")  # 获取文件对象中sheet名为login的sheet对象
    26         #     # # url1 = sheet.cell(1, 0).value 获取第2行第1列的值
    27         #     # # url2 = sheet.cell(1, 1).value获取第2行第2列的值
    28         nrows = sheet.nrows  # 获取总行数
    29         urllist = []
    30         for i in range(1, nrows):
    31             print(i)
    32             nrowsvalue = sheet.row_values(i, 0)#获取第i+1行 第1列的值
    33             urllist.append(nrowsvalue)  # 这里添加元素不能用list = list.append(nrowsvalue);否则会出现nonetype的错误;
    34             print(urllist)
    35         driver = self.driver
    36         for i in range(len(urllist)):  # 获取list长度;range表示默认0开始的整数迭代
    37             print(urllist[i])
    38             driver.get(''.join(urllist[i]))#将list类型转换成字符串类型
    39             print(driver.title)
    40             self.assertEqual(driver.title,'百度一下,你就知道','失败')#添加断言;当driver.title的值为‘百度一下,你就知道’时,断言通过,否则不通过,程序将会终断
    41             time.sleep(3)
    42 
    43     # @classmethod
    44     # def setUpClass(cls):##用例执行前的初始化工作
    45     #     print('开始测试')
    46     
    47 if __name__=='__main__':
    48     filename = './'+'mylogintestresult.html'#定义文件名与路径
    49     fp = open(filename,'wb')#生成文件
    50     ut = unittest.TestSuite()  # 创建测试套件;TestSuite不加括号的结果:addTest() missing 1 required positional argument: 'test'
    51     ut.addTest(mylogintest('testopenBD'))#将要执行的用例加入测试套件中
    52     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='分别打开百度51网站',description='百度51') #如果引用的是from HTMLTestRunner import HTMLTestRunner,这里就不需要写两个HTMLTestRunner,一个就够了
    53     runner.run(ut)#运行测试套件
    54     fp.close()

    EXCEL表格内容为:

    生成的测试报告如下:

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/lelexiong/p/8990112.html
Copyright © 2011-2022 走看看