Web自动化测试相关知识点(仅限于补充)

来源:互联网 发布:python中定义矩阵 编辑:程序博客网 时间:2024/06/03 11:16

  • Selenium如何上传本地文件?

1 上传按钮是input属性

先定位该按钮,再使用sendKeys()方法键入文件的绝对路径即可;

2 上传按钮是flash类型

借助AutoIt工具进行文件上传;

具体参考虫师的博客,我在执行程序时出现问题,一直没解决。。。

http://www.cnblogs.com/fnng/p/4188162.html


  • Selenium中Action对象的dragAndDrop()方法放置规则是什么?

dragAndDrop(source, target);是将source元素拖拽到target元素的左侧元素的位置上,而不是target元素位置上。


  • 一个问题的定位思路

1 确定问题是否能够复现

2 单步调试,定位哪一行代码问题出错

3 自行思考,试图解决

4 上网查阅资料

5 请教专业人士


  • Selenium定位某一元素有时成功有时不成功

原因在于浏览器还未渲染出元素,Selenium操作已经进行;

可使用隐式等待方法解决。


  • 关于ui自动化测试适用于哪些方面测试的问题

举例来说,需要测试的情景为:借款还款流程。
如果想完成此情景,在我们公司大致需要如下操作:(事先已经搭建起本地测试环境)
1、前端进入借款页面,选择一个借款产品并输入借款金额,发起借款请求;(此时状态为借款申请中)
2、本地需要执行一个由开发写好的.bat程序(其实就是开启一个批准借款请求的服务),并在mysql里修改相应表的相应字段值;(此时状态变更为放款中)
3、等待一段时间(可能是5min,也可能是30min,这个不太有准)后会放款给客户;(此时前端状态变为放款成功)
4、假设借款时间为60天,需要将电脑系统时间调整为60天以后;
5、前端进入还款的页面,页面会显示出需还款的金额(本金和60天的利息),用户输入金额并还款;(此时状态为还款中)
6、本地需要执行另一个或多个开发写好的.bat程序(其实就是开启扫描用户还款的一个服务),可能后台还需要一些别的操作;
7、等待一段时间(同样不太有准)后前端显示的状态才能变为还款成功。
需要前后台结合测试时(甚至中途修改数据库、启动某些服务等),例如上面的测试流程是否适用自动化测试?
1、如果适用,类似上面操作执行自动化测试有什么思路?需要解决好哪些问题?
2、如果不适用,那么哪种类型的情景才是适用的?是不是说明自动化测试本身有很大局限性?毕竟现在的系统都很复杂,只操作前台网站就能完成测试的情况似乎太少了。

解答:

一般需要我们能把我们的测试工作解耦:
第一、测试的解耦:
比如前面课程中用例设计中,我们需要把我们的用例分成:测试准备、测试主体、以及测试退出,还有些其他的比如测试数据准备等工作;
第二、技术的解耦:
自动化技术其实很宽泛,Web UI自动化只是其中的一个子领域,可以类比为多种武器,我们要根据使用场景来选择最合适的武器;

下面我们来解耦一下:
第一、测试的解耦:
首先要确定你的测试主体,其实是两个测试主体
一. 借款
二. 还款
借款流程中:
1. 发起借款(Web端、可以自动化)
2. 批准借款(根据你的描述,好像没有ui界面,这个也没问题,只是在后续调用顺序上用测试框架编写依赖即可)
3. 等待(这个过程需要解决,要加速,可以跟你们的开发讨论,一般自动化我们需要在较短的时间内结束;我们在开发自动化代码时候,有时也会遇到此类问题,需要一个个解决),加快等待过程只是为了我们更快的校验,更快的获知我们的结果;
4. 校验结果正确(web端,可以自动化)
还款流程:
数据准备:需要准备已经到还款日的借款数据;
1. 发起还款(Web端、可以自动化)
2. 启动脚本,加速还款过程;要加速这个过程来完成校验;
这样来看,其实我们的两个主题测试并不太复杂,不过你可能会想我在回归测试时想把这些流程贯穿起来, 一起完成;
那我们来继续,接下来就是设计到我们怎么把这些流程贯穿起来,这里需要我们去用到合理的技术手段了;

第二、技术的解耦
需要解决的技术问题,主要是这两块:
1. 自动化整个过程(你这边主要是web自动化和bat等脚本,或者还有接口的调用)
2. 使用测试框架,确定好用例执行的顺序;
3. 加速一些等待过程(比如缓存刷新等),尽快得到结果进行校验;
我们要明白自动化的含义,自动化是根据一定的规则去帮我们完成手工的事情,而且自动化的手段是多样化的。

关于Web自动化的适用场景:
在我们的很多项目组,Web自动化一般用于Web系统的回归测试,且纳入到持续集成里面;不过我们不单单适用UI自动化,还会有分层的测试体系,比如单元测试、接口测试等来完成立体的测试;每种自动化有他适用的范围, 不过我们一般Web系统进行功能测试时,采用Web UI自动化是解放我们劳动力是比较好的选择;










0 0
原创粉丝点击