zoukankan      html  css  js  c++  java
  • python自动化测试

    0、写在前面

    项目都快搞完了,感觉还是一堆的bug,人工测试还是不靠谱

    意识到测试的重要性,学习下自动化测试

    1、相关库

    selenium:自动化测试框架,需下载需要的浏览器driver,无头浏览器

    unittest:python自带的自动化测试库

    HTMLTestRunner:用于生成报告

    一些坑:

    浏览器和driver的版本必须一致,否则起不来

    必须要通过命令行的方式执行脚本,否则不会生成报告

    2、一个简单的栗子

     1 # -*- coding: utf-8 -*-
     2 import unittest
     3 from selenium import webdriver
     4 import time,os
     5 from HTMLTestRunner import HTMLTestRunner
     6 
     7 
     8 
     9 option = webdriver.ChromeOptions()
    10 #设置浏览器不打开
    11 option.add_argument('headless')
    12 
    13 class TestBaidu(unittest.TestCase):
    14     #执行前
    15     def setUp(self):
    16         self.driver = webdriver.Chrome(chrome_options=option)
    17         self.base_url = 'https://www.baidu.com'
    18 
    19     #test开头的函数自动执行
    20     def test_search(self):
    21         u'''测试百度'''
    22         self.driver.get(self.base_url)
    23         input = self.driver.find_element_by_id('kw')
    24         searchButton = self.driver.find_element_by_id('su')
    25         input.send_keys("Python")
    26         searchButton.click()
    27         time.sleep(2)
    28         self.assertEqual(u'Python_百度搜索',self.driver.title)
    29 
    30     #执行后
    31     def tearDown(self):
    32        self.driver.quit()
    33 
    34 if __name__ == '__main__':
    35     u_test = unittest.TestSuite()
    36     u_test.addTests(unittest.TestLoader().loadTestsFromTestCase(TestBaidu))
    37     #生成报告
    38     wf =  open(os.getcwd()+'/result.html','wb')
    39     runner = HTMLTestRunner(stream=wf,title=u"百度测试报告1",description=u"简单测测")
    40     runner.run(u_test)
    41     wf.close()
    test_baidu.py

    3、po模式和数据驱动

    po模式大概就是为每个页面做个class,做好封装,页面、逻辑、数据、驱动分离开

    数据驱动大概就是同一套代码,不同的数据产生不同的结果来进行测试

    4、实现思路

    base--findElement类,根据配置文件来找元素,把selenium的一些方法封装的更简单一些

    page(页面,找到元素)--handle(操作元素)--business(业务层,执行操作)--case(最后调用)

    page--找到具体元素,输入框、按钮、get_username_ele,get_password_ele,loginPage类

    handle--send_username,send_password等等,loginHandle类

    bussiness--整合起来,login(判断登录成功失败),logout,loginBussiness类

    case--具体测试的代码,按计划记性逐项测试

    大概可以按这样的表格列好后,逐项进行测试

    5、具体实现

    测试登录

  • 相关阅读:
    Charles抓包工具
    JQuery 实现表单验证,所有验证通过方可提交
    卡巴斯基注册信息清除
    Nginx 404 Not Found 解决办法
    php mysql 多表查询之子查询语句
    搜狗拼音、QQ拼音输入法、2345拼音输入法、百度输入法 、手心输入法对比。(个人体会)
    Notepad++使用-如何导出/导入配置文件
    深蓝词库转换2.4版发布,支持最新的搜狗用户词库备份bin格式
    网站更换服务器,百度站长后台抓取诊断时间
    阿里云代金券领取
  • 原文地址:https://www.cnblogs.com/cx59244405/p/11632978.html
Copyright © 2011-2022 走看看