zoukankan      html  css  js  c++  java
  • 面试题(五)

    前言

    继续总结下UI自动化的思路

    面试题汇总

    介绍一下UI自动化是怎么做的

    xx项目已经平稳运行三四年了,该项目迭代周期较长,版本间的界面变化不太大,因此在初入公司的时候,公司安排我做项目的APP自动化
    1.首先我在阅读需求文档的基础上,通过和业务测试同学、开发、产品沟通,花了一两周的时间熟悉了项目的需求
    2.然后开始编写测试用例,测试用例根据是否是主流程将用例划分为P0,P1,P2三个等级,P0是重要的、正向的、首先要实现的,P1和P2是后面逐步要完善的
    3.接着是开展测试用例评审,召集测试、开发、产品三方进行积极沟通,逐步完善自动化测试用例
    4.接下来是搭建自动化测试环境,需要安装nodejs、appium-server、appium-python库、adt、模拟器和真机
    5.然后编写测试用例,主要采用的是PO模式,将测试方法、页面对象和测试数据分离,在page_objects目录下定义公用的base_page模块,这个模块有一个BasePage类,这个类初始化需要传入driver对象作为实例属性,然后定义实例方法,比如等待元素可见、等待元素存在、查找并返回一个元素、查找并返回多个元素、滑屏、获取toast等等
    6.各个页面对象继承这个BasePage类,就获得了父类的属性和方法,在各个页面上定义自己的属性,也就是元素定位表达式,定义自己的方法,也就是由父类方法组合而成的页面方法
    7.在yaml配置文件中配置实例化driver需要的platformName、appPackage、appActivity、server_port等信息
    8.定义公共的实例化driver的base_driver模块,base_driver模块下定义BaseDriver类,这个类通过读取yaml配置文件,返回driver实例对象
    9.在conftest模块中定义公共的fixture,fixture通过调用BaseDriver类中base_driver方法,使用yield返回driver实例对象,在测试用例结束后,使用driver.close_app()和driver.quit()做环境的清理
    10.在测试方法中,将fixture的函数名作为方法入参传递给页面对象,这样拿到的就是实例化driver对象,然后通过实例化页面对象再依次调用页面对象的方法,排列组合形成测试用例
    11.在入口函数中,可以通过pytest.main中加一些参数,比如"--reruns","-m","--html"分别实现失败重试,冒烟标记测试,结果报告的生成

    UI自动化测试报告怎么做横向比对

    因此从没这样做过,就说自己用Excel做的折线图和柱状图。后来想到allure+jenkins不就是吗

    从UI自动化结果怎么分析项目的质量

    当时说是根据失败率,做一个横向的比较,当然这个比较之前,也会去判断这个失败是不是自动化代码的问题还是真正的bug。失败率低,至少说明主流程的稳定性好

    UI自动化定位不到元素的原因

    1.代码运行太快
    2.类似于toast这种,需要将automationName改成UIAutomator2,再使用xpath表达式
    3.元素定位表达式写错了
    4.webview需要切换上下文
    5.元素在非可见区域,需要滑动屏幕
    6.内嵌的h5页面嵌套多个iframe,需要切换iframe

    Python底层为什么要加GIL

    知乎上说了一些观点,大概罗列下:
    1.Python需要被CPython解释编译成字节码再执行,而CPython实现的内存管理不是安全的,比如修改一个字典的值,如果不是线程安全,就可能导致错误,所以需要加锁,以保证同一时刻只有一个线程对共享资源进程存取
    2.很多优秀的库是基于CPython的,Python发展这么多年,完全替换掉CPython是完全不可能的。因为你要性能比它好,还要兼容所有依赖于CPython的库
    3.有人做过实验,移除了GIL使用更小粒度的锁,发现在单线程上性能降低非常严重,多线程程序也只有在线程数达到一定数量时才会有性能上的改进。所以移除GIL换更小粒度的锁目前还是不值得的
    地址:https://www.zhihu.com/question/56170408

    最近读过的技术方面的书有哪些

    《图解HTTP》、《Python学习手册》、《Python核心编程》等

  • 相关阅读:
    10000台不稳定机器如果做爬虫
    python 豆瓣高分电影爬虫
    恶意爬虫让机票价格暴涨 每年或致航空公司损失十多亿元
    python 豆瓣高分电影爬虫
    Python 爬虫保存图片
    你的爬虫票价价格暴涨
    10分钟教你利用Python网络爬虫获取穷游攻略
    10分钟教你利用Python网络爬虫获取穷游攻略
    SAP Cloud for Customer 如何直接消费S/4HANA API
    如何分辨 SAP Fiori Launchpad 里的真假 Fiori 应用
  • 原文地址:https://www.cnblogs.com/my_captain/p/12896910.html
Copyright © 2011-2022 走看看