多测师讲解python _unttest框架002(结合项目实战)_高级讲师肖sir
第一种调用方法:
if __name__ == '__main__':
# #第一种运行方法:运行所有的用例


import unittest
from selenium import webdriver
from time import sleep
#from ui_auto.HTMLTestRunnerCN import HTMLTestRunner #导入HTMLTestRunner类==》用来生成测试报告的
import time
class Test_Baidu(unittest.TestCase):
def setUp(self): #方法开始
self.driver = webdriver.Chrome()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(20)
def test001(self): #一条用例
self.driver.find_element_by_id('kw').send_keys('duoceshi')
self.driver.find_element_by_id('su').click()
def test002(self): #一条用例
self.driver.find_element_by_id('kw').send_keys('selenium')
self.driver.find_element_by_id('su').click()
title = self.driver.title
self.assertEqual(title,u'百度一下,你就知道')
self.assertIn(title,u'百度一下,你就知道')
self.assertNotEqual(title,u'百度一下,你就知道123')
def tearDown(self): # 方法结束 注意和位置没有关系的
sleep(3)
self.driver.close()
if __name__ == '__main__':
# #第一种运行方法:运行所有的用例
unittest.main()
第二种运行方法:可以选择运行用例

# # runner = unittest.TextTestRunner()
# #可以先定义一个普通函数
# # def all_case():
# # suite = unittest.TestSuite() #创建一个套件、或者说一个容器、作用就是用来装所有的用例suite是一个对象
# # # suite.addTest(Test_Baidu('test001')) #把用例添加到套件里面
# # # suite.addTest(Test_Baidu('test002'))
# # suite.addTests([Test_Baidu('test001'),Test_Baidu('test002')])
# # return suite #把装满了用例的suite套件返回给到函数的调用处


import unittest
from selenium import webdriver
from time import sleep
#from ui_auto.HTMLTestRunnerCN import HTMLTestRunner #导入HTMLTestRunner类==》用来生成测试报告的
import time
class Test_Baidu(unittest.TestCase):
def setUp(self): #方法开始
self.driver = webdriver.Chrome()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(20)
def test001(self): #一条用例
self.driver.find_element_by_id('kw').send_keys('duoceshi')
self.driver.find_element_by_id('su').click()
def test002(self): #一条用例
self.driver.find_element_by_id('kw').send_keys('selenium')
self.driver.find_element_by_id('su').click()
title = self.driver.title
self.assertEqual(title,u'百度一下,你就知道')
self.assertIn(title,u'百度一下,你就知道')
self.assertNotEqual(title,u'百度一下,你就知道123')
def tearDown(self): # 方法结束 注意和位置没有关系的
sleep(3)
self.driver.close()
#
# #定义一个普通函数
# # def all_case(): #一个套件中的测试用例
# # suite = unittest.TestSuite() #创建一个套件、或者说一个容器、作用就是用来装所有的用例suite是一个对象
# # # suite.addTest(Test_Baidu('test001')) #把用例添加到套件里面
# # # suite.addTest(Test_Baidu('test002'))
# # suite.addTests([Test_Baidu('test001'),Test_Baidu('test002')])
# # return suite #把装满了用例的suite套件返回给到函数的调用处
第三种调用方法:自动搜索用例


第四种方法:

start_dir = r'D:\project\dcs2\ui_auto'
discover = unittest.defaultTestLoader.discover(start_dir=start_dir, pattern='less*.py') #中间* 是通配符
#1.定义生成的测试报告的名称
path = r'C:\Users\Administrator\PycharmProjects\untitled\python+selenium'
now = time.strftime('%Y-%m-%d-%H-%M-%S')
filename = path + "\\" +str(now) + '_ui.html'
f = open(filename,'wb') #以二进制的方式在...ui.html文件中写入报告模板和测试结果
runner = HTMLTestRunner(stream=f,
title=u'百度ui自动化测试报告',
description=u'用例执行情况如下:',
tester=u'王sir')
runner.run(discover)
f.close() #释放资源、关闭文件


表示全部运行成功,但是没有报告


生成报告的流程:



多测师讲解python _unttest框架002(结合项目实战)_高级讲师肖sir的更多相关文章
- 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir
讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...
- 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir
断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...
- 多测师讲解常用的测试工具分为10类_高级讲师肖sir
我们将常用的测试工具分为10类. 1. 测试管理工具 2. 接口测试工具 3. 性能测试工具 4. C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app ...
- 多测师讲解自动化测试 _RF关键字001_( 中)_高级讲师肖sir
1.关键字如下 1.1Get Text 1.2Get Value 2.#上下滑动(滚动条) Open Browser http://www.jd.com gc Maximize Browser Win ...
- 多测师讲解接口测试 —jmeter接数据库(004)_高级讲师肖sir
1.连接数据库jar包 2. 3. jdbc:mysql://192.168.153.131:3306/baoan?zeroDateTimeBehavior=convertToNull&all ...
- 多测师讲解接口测试 _HTTP常见的状态码归纳_高级讲师肖sir
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议 200 OK 一切正常,对 ...
- 多测师讲解自动化测试 _RF数据库操作(上)_高级讲师肖sir
一.安装库 1.查看数据库是否按安装 1.1 DatabaseLibrary pip3 install mysqlclient-2.0.1-cp37-cp37m-win_amd64.whl dos ...
- 多测师讲解python_斐波那契数列:_高级讲师肖sir
def f(n): a,b=1,1 if n==1 or n ==2: return 1 else: i=3 while i<=n: a,b=b,a+b i+=1 return bprint(f ...
- 多测师讲解python _unttest框架001(基本格式)_高级讲师肖sir
1.unittest基本介绍 import unittest #导入unittest模块 #class Test(unittest.TestCase): def setUp(self): #创建dri ...
随机推荐
- JVM学习第三天(JVM的执行子系统)之开篇Class类文件结构
虽然这几天 很忙,但是学习是不能落下的,也不能推迟,因为如果推迟了一次,那么就会有无数次;加油,come on! Java跨平台的基础: 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节 ...
- [转载] 微软发布 SURFACE DUO ANDROID SDK 和模拟器
模拟器截图 微软今天发布了双屏折叠设备 Surface Duo Android 开发工具(SDK 和模拟器),Windows 10X 开发工具和模拟器之后 2 月 11 日发布,并宣布了新的针对双屏体 ...
- iptables防火墙说明即使用
防火墙是架设在公网和私网之间的服务器,隔离公网和私网,保护私网. RHEL7默认使用firewalld作为防火墙. 但firewalld底层还是调用包过滤防火墙iptables #systemctl ...
- JS -- 操作符和数组
一.Javascript常用操作符 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- [LeetCode]1083. 销售分析 II(Mysql,having+if)
题目 编写一个 SQL 查询,查询购买了 S8 手机却没有购买 iPhone 的买家. 题解 使用having + sum+if,而不是自查询. 代码 # Write your MySQL query ...
- js中的鼠标滚轮事件
## 事件对象 event 1 event事件对象,表示用来获取事件的详细信息,比如得到鼠标的横坐标:事件对象.clientX(clientX是可视区坐标) window.onclick = func ...
- adrci清理日志
adrci> show home adrci> set home diag/rdbms/mesp/MESP adrci> help purge adrci> purge -ag ...
- php第六天-UNIX时间戳/格式化时间,程序错误发送的领域
###0x01 PHP的错误处理 1.1 错误报告级别 PHP程序的错误发生一般归属于下列三个领域: 语法错误: 语法错误最常见,并且也容易修复.如:代码中遗漏一个分号.这类错误会阻止脚本的执行. 运 ...
- day55:django:cookie&session
目录 1.Cookie 1.Cookie前戏 2.Cookie的引入 3.django中操作cookie 2.Session 1.cookie的局限性 2.session技术 3.django操作se ...
- C# 中居然也有切片语法糖,太厉害了
一:背景 1. 讲故事 昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5 ...