• Web自动化学习(6)


    一、常用的Linux命令

    图片

    二、APP出现crash或者ANR,你怎么处理?

    可以先把日志过滤出来:adb logcat | findstr xxxxx(过滤日志信息) ,然后再搜索其中的关键字,比如:exception、crash,看看是哪些方法或者异常导致的问题,初步定位问题原因后,可以交给开发人员去具体查找深层原因并修复。

    三、Selenium中如何保证操作元素成功率?

    • 首先通过封装find方法,实现wait_for_element_ispresent(WebDriverWait);

    • 在对页面进行click之前,先滚动到该元素(通过Js封装),避免在页面未加载完成前或是在下拉之后才能显示;

    • 不同方式进行定位,与expected_conditions判断方法封装,循环判断页面元素出现后再操作;

    • 开发人员规范开发习惯,如给页面元素加上唯一的name,id等。

    四、Selenium如何处理下拉选择框?

    大体上我们将下拉框分为两类:

    • 标准下拉框(Select 标签 option 选项)

    • 非标准下拉框 

    1、非标准下拉框处理

    非标准下拉框处理思路:模拟手工方式两步走,先点击下拉列表展开,再点击下拉选项。

    我们以百度页的高级搜索中的全部时间下拉框为例,我们的目标是选择全部时间下拉框中的最近一周。

    图片

    实现代码如下:

    图片

    运行之后,全部时间下拉框选择了最近一周选项:

    图片

    2、标准下拉框处理
    标准下拉框处理处理思路:Select模块处理,根据属性或者索引来定位。

    Select提供了三种选择方法:

    图片

    这里我们自己手动实现个简单的下拉框,样式有点丑,能用起来。

    图片

    我们的目标是选中下拉框中的"ITester软件测试小栈2"选项,接下来使用Select提供的三种选择方法操练下。

    图片

    运行之后,我们可以看到下拉框选上了"ITester软件测试小栈2"。

    图片 

    五、请说下unittest和pytest区别

    unittest和pytest区别如下:

    图片

    六、请说一下Selenium运行原理

     selenium运行流程如下:

    • selenium client(python等语言编写的自动化测试脚本)初始化一个service服务,通过webdriver启动浏览器驱动程序chromedriver.exe;

    • 通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再对浏览器操作需携带此id;

    • 打开浏览器后,所有的selenium的操作(访问地址,查找元素)均通过RemoteConection链接到remote server,然后使用execute方法调用request方法通过urlib3向remote server请求;

    • 浏览器通过请求的内容执行对应动作;

    • 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本。

    运行示意图如下:

    图片

    七、UI自动化缺点是什么?

    1) UI自动化是非常不稳定的。网速、浏览器、脚本的健壮性和测试环境等因素都会导致UI自动化测试的失败。

    2) 做UI自动化测试成本非常高,对测试人员的要求也很高。需要懂自动化测试框架,会一门编程语言,同时还需要代码逻辑清晰。

    3) UI自动化搞不好会适得其反,本来是想用UI自动化来找Bug,结果Bug没找到。反倒浪费了大量的时间和资源去排查环境的问题。

    4) 维护性差。当UI发生改变的时候,UI自动化测试用例就会大量失效,需要测试人员花费大量的时间去修改UI自动化测试的代码。

    八、如何提升UI自动化用例的稳定性?

    1) 在经常检测失败的元素前尽量加上显式等待时间,等要操作的元素出现之后再执行下面的操作;

    2) 多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;

    3) 多用 try 捕捉,处理异常;

    4) 尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。

  • 相关阅读:
    JSR303实现数据校验案例
    maven安装和相关配置
    mybatis分页插件使用案例
    分页查询案例
    ssm整合相关配置
    配置文件没有按照maven约定存放解决方法
    git常用命令和基本使用
    mybatis配置二级缓存
    Angular第三方UI组件库------ionic
    Angular路由知识点
  • 原文地址:https://www.cnblogs.com/chenyablog/p/15201413.html
Copyright © 2020-2023  润新知