面经-----滴滴面试题--selenium项目问答

【前言:文章末尾给大家留下了大量的福利】

滴滴面试:

1. 自己负责哪部分功能?

农餐对接系统分为了两大子系统,一个是个人订餐系统,二是餐馆、个人与农产品供应商进行农产品交易系统。我主要负责组织测试人员对该系统进行测试。

我们测试分为两个阶段

一、功能测试阶段。主要负责编写测试计划、测试用例、部署禅道BUG管理系统,进行功能测试。

首先,我们将系统分为了订餐平台、采购平台、登录注册、消费者/餐馆/供应商后台等七个模块。

其次,使用等价类划分和边界值分析法相结合,针对每个模块设计测试用例。

二、 UI层自动化测试。使用PO设计模式,工具是Selenium+Unit test+Jenkins。

2.1 目的

这个阶段,是在我们项目需求已经明确,版本已经稳定的情况下开始的,主要考虑了几个方面

1. UI层在多平台、多浏览器下运行结果存在不同。也就是需要我们在不同平台、浏览器下运行相同的测试案例,大量的重复劳作力

2. 其次,我们项目因为前期设计不够严谨、版本部署不够规范,会出现BUG重复出现的情况,也就是需要我们每日构建后进行回归测试。

3. 同时,自己希望能够锻炼编程能力。

2.2 内容

在设计UI层自动化测试用例的时候,使用的是PO设计模式,也就是把每一个页面所需要操作的元素和步骤都封装在一个页面类中。然后 Selenium+Unit test搭建四层框架——实现数据、脚本、业务逻辑分离(关键字驱动)

1)基础层(BasePage)

设计一个基本的Page类,所有页面皆继承该类。提供了一个页面需要实现的基本功能及公共方法。

2)业务逻辑层(Pages):

按照PO设计模式,将每个页面抽象为一个类,放在Pages包里面,每个页面继承Basepage,可调用Data层数据,内容包括:

  • 该页面所有的操作对象属性
  • 实现的功能

3)数据层(Data)

该层存放相关数据,例如:用户数据和密码。在测试用例可通过调用数据层的数据来进行操作。

4)测试用例层(Testcases)

每一个测试用例testcase都对应Pages里面的一个页面,继承unnitest.TestCase类。通过调用对应页面类的方法,数据层的数据、增加断言(assert)来验证功能的正确性。

此外通过Jenkins自动执行测试、代码质量检测和部署到测试服务器、部署到生产服务器上

2.3 自动化测试执行策略——三个阶段

使用Jenkins持续集成工具来执行测试脚本和部署,主要设置了三个任务:

  • tm_test:用于执行自动化测试脚本,检测代码质量
  • tm_staging_deploy:用于在测试服务器上部署代码
  • tm_deploy:用于在生产服务器上部署

我们将测试分为三个阶段

1. 开发新的需求时,创建分支devN。当在这个分支中,需求开发完成或者Bug修复,就配合测试人员利用JUNit框架进行单元测试以及功能测试。通过测试后,合并到master上。

2. 当master有变动,则触发tm_test任务,执行自动化测试脚本和代码质量检测。如果通过则自动触发tm_staging_deploy,部署到测试服务器,如果没有通过,自动化测试脚本会将Bug截图发送给测试人员。

3. 登陆生产服务器上,对网站进行功能测试。如果通过测试,则手动触发tm_deploy,部署到生产服务器。如果没有通过,在禅道管理系统上把bug指派给相应模块的开发人员。

2. 在使用Selenium中遇到的最大的问题?如何解决?——测试用例的可靠性

http://blog.csdn.net/kufei123/article/details/47375065

误报通常是我们在使用selenium的最头疼的问题,这使得很难把selenium测试用例加入到自动构建中。有些构建是必须要成功的,如果失败将会阻塞整个发布流程。

解决方法——重试我们的解决方案是在测试步骤和测试集中都加入重试机制

产生误报最大原因是selenium在页面加载完成之前就开始请求页面资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值