第一种调用方法:

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的更多相关文章

  1. 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir

    讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...

  2. 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir

    断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...

  3. 多测师讲解常用的测试工具分为10类_高级讲师肖sir

    我们将常用的测试工具分为10类. 1. 测试管理工具 2. 接口测试工具 3. 性能测试工具 4. C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app ...

  4. 多测师讲解自动化测试 _RF关键字001_( 中)_高级讲师肖sir

    1.关键字如下 1.1Get Text 1.2Get Value 2.#上下滑动(滚动条) Open Browser http://www.jd.com gc Maximize Browser Win ...

  5. 多测师讲解接口测试 —jmeter接数据库(004)_高级讲师肖sir

    1.连接数据库jar包 2. 3. jdbc:mysql://192.168.153.131:3306/baoan?zeroDateTimeBehavior=convertToNull&all ...

  6. 多测师讲解接口测试 _HTTP常见的状态码归纳_高级讲师肖sir

    100 Continue  初始的请求已经接受,客户应当继续发送请求的其余部分 101 Switching Protocols  服务器将遵从客户的请求转换到另外一种协议 200 OK  一切正常,对 ...

  7. 多测师讲解自动化测试 _RF数据库操作(上)_高级讲师肖sir

    一.安装库 1.查看数据库是否按安装 1.1 DatabaseLibrary pip3 install mysqlclient-2.0.1-cp37-cp37m-win_amd64.whl dos  ...

  8. 多测师讲解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 ...

  9. 多测师讲解python _unttest框架001(基本格式)_高级讲师肖sir

    1.unittest基本介绍 import unittest #导入unittest模块 #class Test(unittest.TestCase): def setUp(self): #创建dri ...

随机推荐

  1. JVM学习第三天(JVM的执行子系统)之开篇Class类文件结构

    虽然这几天 很忙,但是学习是不能落下的,也不能推迟,因为如果推迟了一次,那么就会有无数次;加油,come on! Java跨平台的基础: 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节 ...

  2. [转载] 微软发布 SURFACE DUO ANDROID SDK 和模拟器

    模拟器截图 微软今天发布了双屏折叠设备 Surface Duo Android 开发工具(SDK 和模拟器),Windows 10X 开发工具和模拟器之后 2 月 11 日发布,并宣布了新的针对双屏体 ...

  3. iptables防火墙说明即使用

    防火墙是架设在公网和私网之间的服务器,隔离公网和私网,保护私网. RHEL7默认使用firewalld作为防火墙. 但firewalld底层还是调用包过滤防火墙iptables #systemctl ...

  4. JS -- 操作符和数组

    一.Javascript常用操作符 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  5. [LeetCode]1083. 销售分析 II(Mysql,having+if)

    题目 编写一个 SQL 查询,查询购买了 S8 手机却没有购买 iPhone 的买家. 题解 使用having + sum+if,而不是自查询. 代码 # Write your MySQL query ...

  6. js中的鼠标滚轮事件

    ## 事件对象 event 1 event事件对象,表示用来获取事件的详细信息,比如得到鼠标的横坐标:事件对象.clientX(clientX是可视区坐标) window.onclick = func ...

  7. adrci清理日志

    adrci> show home adrci> set home diag/rdbms/mesp/MESP adrci> help purge adrci> purge -ag ...

  8. php第六天-UNIX时间戳/格式化时间,程序错误发送的领域

    ###0x01 PHP的错误处理 1.1 错误报告级别 PHP程序的错误发生一般归属于下列三个领域: 语法错误: 语法错误最常见,并且也容易修复.如:代码中遗漏一个分号.这类错误会阻止脚本的执行. 运 ...

  9. day55:django:cookie&session

    目录 1.Cookie 1.Cookie前戏 2.Cookie的引入 3.django中操作cookie 2.Session 1.cookie的局限性 2.session技术 3.django操作se ...

  10. C# 中居然也有切片语法糖,太厉害了

    一:背景 1. 讲故事 昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5 ...