• 基于PO和单例设计模式用python+selenium进行ui自动化框架设计【多测师】


    本人是一名软件测试技术爱好者,希望和大家一起交流ui,接口,性能,功能,人工智能,大数据等技术。更多免费软件测试ui和接口自动化框架设计视频就在多测师官网:www.duoceshi.cn  ==》多测师_王sir原创

    一)框架目录的结构



    二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备
    然后目前的配置文件大都会用yaml,ini,excel,还有.py也就是python文件来进行管理这里用的是ini文件。



    三)config包当中的globalconfig文件主要是用来生成项目的路径,测试用例,测试报告的路径
    其中调用了ReadConfigIni这个类来读取ini格式的文件。



    四)Data.xlsx主要是用来存放项目的url,账号和密码的
    通过excel来存放,可以增加数据的稳定性,后面会通过封装读取excel文档的工具类,来对excel文档中的数据进行读取



    五)public包中pages包中的BaseTestCase模块主要是用来放基类的
    当中并且通过set_driver传入一个driver对象来进行设置driver对象,这其实就是单例设计模式的体现然后通过get_driver来拿driver,
    所以只要继承BaseTestCase这个基类,就可以拿到这个类当中的一切类方法。然后定位页面元素
    用find_element这个类方法来进行封装,可以使得传入的参数是一个
    元组,然后这里其实用到了Java当中的page object设计模式,也就是所谓的PO设计模式,使得页面
    中的每一个控件都变成了对象的属性。






    六)public包中pages包中的login模块主要封装了项目的登录,首先创建一个driver
    对象,然后通过调用set_driver方法把driver传给基类,这个地方是最为关键的
    地方,所以基类中的driver,其实就是这个地方传进去的,然后把driver对象赋值
    变成了BaseTestCase这个基类的类变量也就是类的属性,所以后续基类当中的类方法
    其实都是使用的这个login模块中创建的这个driver对象,这样的目的就是可以保证我们
    的项目从头到尾都是使用的同一个driver对象,同一个driver指的就是打开的为同一个
    chrome浏览器。




    七)这里封装了一个读取excel的工具类
    因为后续我们的项目的账号和密码都存在excel文档中去了,所以需要封装一个
    读取excel的工具类,来读取账号和密码,其中用到了xlrd模块来读取。



    八)Login_data模块中主要是读取excel然后返回url,账号,密码
    get_password方法因为生成的数据是浮点数,所以用了int函数进行转换。



    九)封装了一个发送邮件的工具类,值得注意的是这里用的是163的smtp服务器
    这个代码是不适用QQ服务器的,而且pwd是163邮箱的授权码,不是密码
    这个地方需要注意。




    十)PageElement这个模块很为关键,这个PageElement类当中封装了所有页面的网页元素
    这里其实就是用到了让一个项目中的所有元素定位和用例流程和最终的用例进行分层处理
    这个设计有点像RF框架当中的三层封装设计模式:元素层,流程层和案例层,但是这样处理
    有一个问题就是代码量会很多。但是优势也是非常明显的
    优势如下:
    1.让元素定位,流程,案例进行了分离
    2.前端代码关于元素定位有改动可以随时进行处理,修改非常方便
    3.让代码间的耦合性降低
    4.降低代码的维护成本
    5.代码的复用性高
    6.采用标准的page object页面对象设计模式,符合现在主流ui自动化框架的标准搭配



    十一)这里封装了一个工具类,主要是用来读取ini文件的
    需要先在dos窗口用pip install configparser来安装configparser模块



    十二)run模块中主要是用来加载和运行所有的用例,并且生成测试报告和发送测试报告。




    十三)编写测试用例,后续有当前模块的测试用例就可以更新在当前这个模块中
    然后进行断言。

    以上ui自动化框架设计源码对应视频可扫描下图二维码获取!!!

     

    更多免费软件测试和python、Java开发、大数据和人工智能的学习资料就在多测师官网地址:http://www.duoceshi.cn

    加入我们只需要三个月就可以月薪上万!!!

    upfile1583500745149.png

  • 相关阅读:
    Manachar’s Algorithm
    脑裂 CAP PAXOS 单元化 网络分区 最终一致性 BASE
    Scheduling Multithreaded Computations by Work Stealing
    QQ好友状态,QQ群友状态,究竟是推还是拉? 网页端收消息,究竟是推还是拉?
    支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
    0到1:微信后台系统的演进之路 原创 张文瑞 InfoQ 2016-01-14
    救火必备!问题排查与系统优化手册
    如何紧急定位线上内存泄露? 原创 朱云锋 阿里技术 2019-12-20
    如何应对C语言内存泄露! 华为开发者社区 2020-09-29
    一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/12373820.html
Copyright © 2020-2023  润新知