51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1480|回复: 0
打印 上一主题 下一主题

创建你的第一个webdriver python代码

[复制链接]
  • TA的每日心情
    无聊
    半小时前
  • 签到天数: 528 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-6 15:07:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本示例代码演示了使用Ie浏览器访问百度进行搜索测试。
    HTMLTestRunner 从这里下载:
    http://tungwaiyip.info/software/HTMLTestRunner_0_8_2/HTMLTestRunner.py

    下载后和当前测试脚本放在同一目录。

    1. # 将以下代码保存到first_webdriver.py中

    2. #-*- coding:utf-8 -*-

    3. __author__ = u'苦叶子'

    4. from selenium import webdriver
    5. import unittest
    6. import HTMLTestRunner  
    7. import sys
    8. from time import sleep

    9. reload(sys)
    10. sys.setdefaultencoding("utf-8")

    11. class BaiduTest(unittest.TestCase):
    12.     """百度首页搜索测试用例"""
    13.     def setUp(self):
    14.         self.driver = webdriver.Ie()
    15.         self.driver.implicitly_wait(30)
    16.         self.base_url = u"http://www.baidu.com"
    17.         
    18.     def test_baidu_search(self):
    19.         driver = self.driver
    20.         print u"开始[case_0001]百度搜索"
    21.         driver.get(self.base_url)
    22.         
    23.         # 验证标题
    24.         self.assertEqual(driver.title, u"百度一下,你就知道")
    25.         driver.find_element_by_id("kw").clear()
    26.         driver.find_element_by_id("kw").send_keys(u"开源优测")
    27.         driver.find_element_by_id("su").click()
    28.         sleep(3)
    29.         
    30.         # 验证搜索结果标题
    31.         self.assertEqual(driver.title, u"开源优测_百度搜索")
    32.         
    33.     def tearDown(self):
    34.         self.driver.quit()
    35.         

    36. if __name__ == '__main__':
    37.     testunit = unittest.TestSuite()
    38.     testunit.addTest(BaiduTest('test_baidu_search'))   
    39.     # 定义报告输出路径
    40.     htmlPath = u"testReport.html"
    41.     fp = file(htmlPath, "wb")
    42.    
    43.     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
    44.            title=u"百度测试",
    45.            description=u"测试用例结果")
    46.    
    47.     runner.run(testunit)
    48.    
    49.     fp.close()
    复制代码
    代码解释
    总体上代码分为五大块
    • 文件保存编码及作者定义
    1. #-*- coding:utf-8 -*-
    2. __author__ = u'苦叶子'
    复制代码
    • 导入相关基础模块
    1. # 从selenium中导入webdriver模块
    2. from selenium import webdriver
    3. # 导入unittest模块,作为用例基类
    4. import unittest
    5. # 导入html报告生成模块,用于html格式报告生成
    6. import HTMLTestRunner  
    7. # 导入sys模块
    8. import sys
    9. # 导入sleep模块,用于强制等待
    10. from time import sleep
    复制代码
    • 设置当前python运行环境为utf8
    1. # 设置当前python运行在utf-8编码下,这样你的中文就不会乱码了
    2. reload(sys)
    3. sys.setdefaultencoding("utf-8")
    复制代码
    • 定义和实现测试用例
    1. # 从unittest.TestCase继承
    2. class BaiduTest(unittest.TestCase):
    3.     """百度首页搜索测试用例"""
    4.    
    5.     # 用例级初始化函数,自动执行
    6.     def setUp(self):
    7.         # 初始化基于IE浏览器的webdriver实例
    8.         self.driver = webdriver.Ie()
    9.         
    10.         # 给当前webdriver设置全局隐性等待时间,最大30s
    11.         self.driver.implicitly_wait(30)
    12.         
    13.         # 设置首页url
    14.         self.base_url = u"http://www.baidu.com"
    15.         
    16.     def test_baidu_search(self):
    17.         # 简单赋值,这样在本测试中后续就不用每次都写self.driver,
    18.         # 少写几个字符, 都是为了偷懒啊😄
    19.         driver = self.driver
    20.         
    21.         # 在控制台打印输出
    22.         print u"开始[case_0001]百度搜索"
    23.         
    24.         # 启动浏览器,并访问首页
    25.         driver.get(self.base_url)
    26.         
    27.         # 验证标题
    28.         self.assertEqual(driver.title, u"百度一下,你就知道")
    29.         
    30.         # 清理搜索输入框中的数据
    31.         driver.find_element_by_id("kw").clear()
    32.         
    33.         # 在搜索输入框中输入 开源优测
    34.         driver.find_element_by_id("kw").send_keys(u"开源优测")
    35.         
    36.         # 单击 百度一下  按钮
    37.         driver.find_element_by_id("su").click()
    38.         
    39.         # 强制等3s
    40.         sleep(3)
    41.         
    42.         # 验证搜索结果标题
    43.         self.assertEqual(driver.title, u"开源优测_百度搜索")
    44.    
    45.     # 用例级清理函数,自动执行   
    46.     def tearDown(self):
    47.         # 退出webdriver,同时关闭当前webdrier session下所有浏览器窗口
    48.         self.driver.quit()
    复制代码
    • 测试脚本主运行入口
    1. # python main函数
    2. if __name__ == '__main__':
    3.     # 初始化一个用例套件集
    4.     testunit = unittest.TestSuite()
    5.    
    6.     # 往用例套件集新增一个测试
    7.     testunit.addTest(BaiduTest('test_baidu_search'))   
    8.    
    9.     # 定义报告输出路径,这里是当前目录
    10.     htmlPath = u"testReport.html"
    11.    
    12.     # 打开测试报告文件
    13.     fp = file(htmlPath, "wb")
    14.    
    15.     # 构建一个HTMLTestReport执行器
    16.     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
    17.            title=u"百度测试",
    18.            description=u"测试用例结果")
    19.    
    20.     # 运行测试集
    21.     runner.run(testunit)
    22.    
    23.     # 关闭打开的测试报告文件
    24.     fp.close()
    复制代码
    运行代码
    使用以下命令运行上述代码

    1. python first_webdriver.py
    复制代码
    可以看到:
    • 将启动浏览器访问百度首页
    • 在百度首页搜索框中输入了 开源优测 单击了 百度一下 按钮 显示出搜索结果
    • 闭关了浏览器
    • 在当前目录下 生成了testReport.html的测试报告文件

    总结最后总结下,要注意的几个关键点:
    • 确保要启动的浏览器的驱动已经下载好,具体在哪下载请参见上一章
    • 确保下载了HTMLTestRunner模块
    • 最好自己把代码一行行敲入一遍,不要直接拷贝运行



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 10:26 , Processed in 0.062691 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表