第一种调用方法:

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. leetcode刷题-60第k个队列

    题目 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列. 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123""132& ...

  2. Flash 0day(CVE-2018-4878)复现过程

    一.前言介绍 2018年2月1号,Adobe官方发布安全通报(APSA18-01),声明Adobe Flash 28.0.0.137及其之前的版本,存在高危漏洞(CVE-2018-4878). 从Ad ...

  3. 设计模式也可以这么简单(7年开发老鸟PS注释总结)

    设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分 ...

  4. 【小程序】---- 封装Echarts公共组件,遍历图表实现多个饼图

    一.问题描述: 在小程序的项目中,封装公共的饼图组件,并在需要的页面引入使用.要求一个页面中有多个饼图,动态渲染不同的数据. 二.效果实现: 1. 查看——小程序使用Echarts的方式 2. 封装饼 ...

  5. oracle之二数据库审计

    数据库审计audit(PPT-I-320-334) 13.1 审计的功能:监控特定用户在database 的action(操作) 13.2 审计种类: 1)标准数据库审计(语句审计.权限审计.对象审计 ...

  6. [极客大挑战 2019]Havefun wp

    很少见的很简单的一道题 查看源代码 获得一段被注释的代码 直接?cat=dog即可得flag

  7. JDK13环境变量配置

    第一步:下载JDK(开发工具包) JDK分为OracleJDK和OpenJDK下面简要说明 OracleJDK 部分代码闭源.商业收费 OpenJDK 开放源码.商业免费 两者大部分代码是共用的(除闭 ...

  8. Linux实战(2):Linux传输文件

    此次使用的是scp命令,只是针对文件或者文件的传输,并没有什么高端的使用,主要是怕自己忘记了记一下. 传输文件,命令说明:scp+文件路径针确到文件名+账号+上传到另一台的路径并另存为文件名 scp ...

  9. matlab中如何定义函数

    首先建立M文件或直接点击(File/New/Function)建立函数文件,其中函数文件的格式是: function [输出变量] = 函数名称(输入变量) % 注释 % 函数体 如下所示,是编写的一 ...

  10. python一些小trick

    数据去重 lst = ['1','2','3','3'] lst = list(set(lst)) 不同根目录下引用另一个库 例如 |--a--a.py |--b--b.py 在b.py中调用库a.p ...