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) 尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。

原文地址:https://www.cnblogs.com/chenyablog/p/15201413.html