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表格内容为:

生成的测试报告如下:

【原创】python+selenium,用xlrd,读取excel数据,执行测试用例的更多相关文章

  1. python使用xlrd读取excel数据时,整数变小数的解决办法

    python使用xlrd读取excel数据时,整数变小数: 解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可.如果数据比较多,也可以批量加英文逗号的前缀(网上都有方法 ...

  2. Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中

    一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...

  3. python使用xlrd读取excel数据

    一.安装xlrd 库的安装我这里就不说了.. 二.读取 excel 前提条件:excel文件名称为 excel_data.xlsx 1.打开excelw 文件 workbook = xlrd.open ...

  4. 使用python三方库xlrd解析excel数据

    excel是平常用的比较多的一种数据格式,而在自动化测试过程中,解析其数据以供脚本使用就是一个重要的工作,幸好已有现存的三方库供使用,而不必重新造轮子. 一.安装xlrd模块 到python官网下载h ...

  5. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  6. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  7. python 的两个模块xlwt,xlrd,写入和读取Excel数据

    http://www.cnblogs.com/fireme/p/3887284.html 这上面写的很全,不过我只需要简单的读和写的操作就ok了,下面是我写的读和写入Excel操作 读取Excel数据 ...

  8. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  9. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  10. Python模块学习之xlrd 读取Excel时传入formatting_info=True报错:NotImplementedError: formatting_info=True not yet implemented

    问题:xlrd读取Excel时传入 formatting_info=True 报错 之前我们使用读取xls文件的时候都是使用的xlrd库,但是这个库只能操作 .xls格式,对于后来的 .xlsx的版本 ...

随机推荐

  1. java学习摘抄笔记mybaits2

    mybatis第二天  高级映射 查询缓存 和spring整合 课程复习: mybatis是什么? mybatis是一人持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己去编 ...

  2. Angular 修改路由策略,改为使用hash路由,即带#号URL

    修改app.module.ts如下  

  3. Linux下将.Asp Core 部署到 Docker容器中

    我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简 ...

  4. C++实现 企业信息管理系统

    2.1总体需求 ​ 2.2管理需求 ​ ​ 3.总体架构 ​ 由于代码量比较大,请移步GitHub或码云 码云:传送门 , GitHub:传送门 话不多说,直接上效果 我是在Linux Ubuntu1 ...

  5. JavaScript 的 深拷贝和浅拷贝

    深拷贝和浅拷贝都是针对的引用类型, JS中的变量类型分为值类型(基本类型)和引用类型: 对值类型进行复制操作会对值进行一份拷贝,而对引用类型赋值,则会对地址进行拷贝,最终两个变量指向同一份数据 一.先 ...

  6. ServletContextInitializer添加 servlet filter listener

    ServletContextInitializer添加 servlet filter listener https://www.cnblogs.com/pomer-huang/p/9639322.ht ...

  7. Linux文件比对,批量复制

    --背景 工作中突然有一天文件服务器空间满了,导致文件存不进去,立马换了另外一台服务器作为文件服务器,将服务器挂载上去,原来的服务器修复之后需要重新换回来,但是需要将临时使用的服务器内的文件迁移至原文 ...

  8. springboot IDEA新建Maven项目的Plugins出现红线的解决方法

    将pom.xml文件copy到桌面,删除项目中的pom.xml.发现项目maven中没有任何东西后,然后将桌面的pom.xml粘贴到项目目录下,刷新maven就ok了

  9. 小程序加入echart 图表

    github上的地址 https://github.com/ecomfe/echarts-for-weixin 复制到当前项目根目录下 添加展示bar图表例子的文件夹 index.json 中配置使用 ...

  10. 【转载】C#中Convert.ToInt32方法将字符串转换为Int32类型

    在C#编程过程中,可以使用Convert.ToInt32方法将字符串或者其他可转换为数字的对象变量转换为ToInt32类型,Convert.ToInt32方法有多个重载方法,最常使用的一个方法将字符串 ...