Selenium PO模式

Selenium PO模式SeleniumPO 模式

Selenium PO模式

  • PO模式(POM)
    • Page Object Model
  • Page
    • Page_base
      • 封装所有页面公用的方法
        • driver
        • find_element
        • click
        • send_keys
        • clear
        • switch_to.frame
        • get_current_url
        • quit(close方法是关闭当前窗口,quit关闭浏览器)
    • Login_page
      • 封装登陆页面公用的方法
      • 继承Page_base父类
      • 将获取元素方式,以及元素对应属性值存储为元组
  • Common
    • data
      • 获取文件内数据
        • import csv
        • fl = open(fl_name)
        • content = csv.reader(fl)
        • data_list = [i for i in content]
      • 获取登录数据
        • data = self.get_data(‘./Data/login.csv’)
        • login_list = [i[2:] for i in data[1:]]
    • log
      • 测试日志
        • 创建日志
          • import os
          • from time import strftime
          • fl_path = ‘./Log/report_%s’ % strftime(‘%Y%m%d%H%M%S’)
          • os.mkdir(fl_path)
          • Log.fl_path = fl_path
        • 错误截图
          • err_img_path = ‘%s/%s’ % (Log.fl_path, name_)
          • driver.get_screenshot_as_file(err_img_path)
  • Data
    • 存放csv文件
  • Log
    • 存放日志
  • Testcase
    • 封装测试用例
      • class LoginTestCase(unittest.TestCase):
        • def SetUp(self):
        • def tearDown(self):
        • def testcase001(self):
        • ”’ 注释 ”’
    • import unittest
    • from time import strftime
    • from time import sleep
    • from Page.report_manage import ReportManage
    • from Page.login_page import LoginPage
    • from Common.data import Data
    • from Common.log import Log
    • if __name__ == ‘__main__’:        #如果该py文件作为执行文件时
    • unittest.main()               #被引用时,会在引用的那个文件中执行
  • run.py
    • import unittest
    • from HTMLTestRunner import HTMLTestRunner
    • from Common.log import Log
    • log_object = Log()
    • log_object.create_report()
    • fl_name = ‘%s/report.html’ % Log.fl_path    #日志文件名
    • suite = unittest.defaultTestLoader.discover(‘./Testcase’, pattern=’test*.py’)
    • fl = open(fl_name, mode = ‘wb’)
    • runner = HTMLTestRunner(stream=fl, title=’Agileone Test’)
    • runner.run(suite)
    • fl.close()
  • 其他
    • import unittest
    • from unitest_test1 import AddTestCase
    • from unitest_test2 import MultiTestCase
    • from HTMLTestRunner import HTMLTestRunner
    • ”’
    • #适合冒烟测试
    • suite = unittest.TestSuite()
    • suite.addTest(AddTestCase(‘test001’))
    • suite.addTest(AddTestCase(‘test002’))
    • suite.addTest(MultiTestCase(‘test001’))
    • suite.addTest(MultiTestCase(‘test002’))
    • #可以更改执行顺序,调整优先级
    • ”’
    • f1 = open(‘./result.html’, mode = ‘wb’)
    • #构建测试集
    • #适合整个用例执行
    • suite = unittest.defaultTestLoader.discover(‘./’, pattern=’unitest_test*.py’)
    • #runner = unittest.TextTestRunner()    #unittest自带运行器
    • runner = HTMLTestRunner(stream = f1, title = ‘Report’, description = ”)
    • runner.run(suite)
    • f1.close()
    • ”’
    • unittest.TestSuite()
    • ”’
  • 自动化测试
    • 自动化测试优点:
      • 1. 对程序的回归测试更方便,提升回归效率,节约人力。
      • 2. 可以执行一些手工测试困难或不可能进行的测试。
      • 3. 更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例
      • 4. 测试具有可重复性。
      • 5. 增加软件信任度,由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。
    • 自动化测试缺点:
      • 1. 不能取代手工测试,工具本身并无想像力。
      • 2. 对自动化测试人员要求较高。
      • 3. 对被测试系统质量的依赖性极大,维护成本高。
      • 4. 测试脚本本身也可能存在缺陷。
      • 5. 测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。
    • 适合自动化测试的产品:
      • 1. 软件需求变动不频繁。
      • 2. 项目周期长,规划性强。
      • 3. 回归测试任务重。
      • 4. 项目进度压力不大。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223908.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:09
下一篇 2026年3月17日 下午1:09


相关推荐

  • Java初学者常用的开发工具都有哪些?[通俗易懂]

    Java初学者常用的开发工具都有哪些?[通俗易懂]俗话说的好“工欲善其事必先利其器”,要想学好java这门语言,选择一款好用顺手的开发工具是必不可少的。java初学者常用源码编辑工具介绍java源代码本质上其实就是普通的文本文件,所以理论上来说任何可以编辑文本文件的编辑器都可以作为我们的java代码编辑工具。比如:WINDOWS记事本、写字板、word等。但是这些简单工具没有语法的高亮提示、自动完成等功能,这些功能的缺失会大大降低代码的编写效率。学习开发时一般我们不会选用这些简…

    2022年7月7日
    18
  • 360天擎卸载密码忘记了_天擎关闭密码

    360天擎卸载密码忘记了_天擎关闭密码前言MySQL8相比之前版本改动还是挺大的,因为刚从安装接触,就先从基本的说起。现在的mysql8安装只能采用解压配置版,像以前老版本的傻瓜式安装将不复存在。注意点MySQL8之后并不需要my.ini,会自动的生成data文件夹在解压之后的文件,端口默认3306,。若有这个文件,则初始化mysql不成功。自己若新建并设置了my.ini文件,有data文件的话,在初始化之前要删除。然后再初始化在初…

    2026年3月8日
    4
  • live2d网页看板娘_live2d吧

    live2d网页看板娘_live2d吧Live2D看板娘实现开发工具IDEA国际惯例先上图:所需资源:链接:https://pan.baidu.com/s/1s7IJIqGnn-cNRAfoS-qG5w提取码:dhf4其中包含了看板娘所需的CSS,image,JS,Live2d所需的基本资源。下面就来实现吧开发工具idea+tomcat,如果没有的小伙伴们可以自己从网上分别安装这两个资源并配置,网上有很多,这里我不在赘述了。(如果有很多人需要我或许可以出个教程…认真脸)。1.创建项目2.项目创建完成3.引入看板娘

    2025年8月22日
    64
  • spring cloud之 hello world和eurake介绍及eurake使用

    spring cloud之 hello world和eurake介绍及eurake使用一.springcloud之helloworld1.两个微服务,分别是用户和订单,其中用户是微服务提供者,订单是微服务消费者2.首先建一个工程,里面有两个module:prvoider-user和comsumer-ordercomsumer-user配置文件:prvoider-order配置文件:用spring提供的RestTemplate访问rest…

    2022年5月10日
    55
  • 总结:相关滤波器(Correlation Filters)

    总结:相关滤波器(Correlation Filters)本文是对相关滤波器(CorrelationFilters)相关paper的理解和总结,不过对于我来说,KCF实在不好理解,感觉好多地方理解的不彻底,错误之处还请指出,共同进步。

    2022年5月22日
    38
  • Unicode编码转换工具

    Unicode编码转换工具http tool chinaz com Tools Unicode aspx pf to pc group

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号