当前位置: 首页 > article >正文

selenium自动化面试题回答

1. 你们自动化测试,用的什么语言?什么工具?什么框架?

参考答案

我们做的是 Web UI 自动化,使用 selenium 自动化工具结合 unittest 框架来实现自动化测试,采用 python 脚本语言编写。

参考答案

我们是用 selenium 工具来实现自动化,采用 python 脚本语言,unittest 测试框架和PO模式搭建的UI自动化测试框架


2. 你们web自动化怎么做的?

参考答案

1. 我们一般在 主流程测试 或 回归测试 的时候使用自动化测试;

2. 我们会先对需求进行评估,确定测试范围,然后从手工用例中就筛选出要实现自动化测试的用例;

3. 接着开始准备编写自动化测试脚本,我们的脚本是基于Python语言编写的,使用Unittest框架结合了PO思想搭建的UI自动化测试框架,用的自动化工具是 Selenium;

4. 根据搭建好的测试框架,我们会把页面中的公共方法封装到 common 中,把页面的业务逻辑代码放在page层,在 testcase层编写测试用例代码,在report 层存放测试报告;

5. 最后在主运行文件 run.py中,运行项目的自动化用例;

6. 脚本跑完后会生成 html 格式的自动化测试报告,打开报告看看有没有失败的,进行问题分析。

7. 比如,充值这个功能的脚本,我们是这样做的:在testcase层编写自动化用例代码,导入unittest框架,定义一个类继承TestCase类,在这个类里面开始编写测试用例,并在每条用例上加上断言,来判断用例执行是否符合预期,用例写好后,到运行文件中,将要执行的用例导过来执行,脚本执行完成后,到report中查看报告


3. 自动化测试怎么看报告的?

参考答案:

我们用的是第三方的HTMLTestRunner工具生成的测试报告,跑完脚本后,到report里面打开生成的报告,看看用例执行情况,重点看看有没有执行失败或者有异常的用例,如果有的话,点开详情,里面有报错日志,看看具体原因,还可以配合截图进行分析


4. selenium是怎么使用的?

参考答案:

Selenium是Web自动化工具,里面封装了大量操作浏览器的API,主要模拟人进行浏览器操作,Selenium是第三方库,要先安装Selenium自动化工具,再将Selenium导入到脚本中使用

那Selenium简单的使用方法是:

1. 导入自动化工具后,先实例化一个浏览器对象,后面的操作都会基于这个浏览器对象(即启动浏览器)

2. 通过浏览器对象访问页面

3. 打开页面后,进行页面操作,即通过浏览器对象调用元素定位方法进行元素定位并操作

4. 页面操作结束后,通过浏览器对象调用关闭方法,将浏览器关闭


5. setUp、tearDown、testa、testb的执行顺序是什么?

参考答案:

unittest框架下,每条用例执行之前会先执行setUp方法,每条用例执行之后会执行tearDown方法,有多条用例的情况下,用例的执行顺序是根据test后面字符的ASCII从小到大的顺序执行的,比如testa、testb,会先执行testa,所以setUp、tearDown、testa、testb的执行顺序是setUp→testa→tearDown→setUp→testb→tearDown


6. 你们在做自动化测试的时候,多窗口切换是怎么做的?

参考答案:

通过窗口句柄切换,先通过浏览器对象调用window_handles获取到所有窗口句柄,此时返回的数据类型是列表,可以通过下标获取到具体窗口的句柄,然后再通过switch_to.window(句柄)就可以切换到指定的窗口了


7. 说一下定位元素用什么方法?

参考答案:

元素定位一般有八大方式:

id、name、class_name、tag_name、link_text、partical_link_text、css、xpath

l id定位方式:根据元素的id属性定位的,一般情况下id属性值是唯一的,有id时用id定位

l name定位方式:根据元素的name属性定位的,name属性可以不唯一,用的时候识别下是不是可以作为识别这个元素的唯一特征;

l class_name定位方式:根据元素的class属性定位的,class属性值一般情况下都不唯一,用的少一点;

l tag_name定位方式:根据元素的标签定位的,很少使用,同名标签太多,只有元素特殊的时候会用;

l link_text定位方式:专门针对<a>标签定位的,是根据文本值进行精确匹配定位

l partical_link_text定位方式:专门针对<a>标签定位的,是根据文本值进行模糊匹配定位

l css定位方式:根据css层叠样式表的元素选择器定位的,一般情况下web项目,如果元素没有比较明显的特征,优先采用css定位,比xpath定位速度要快

l xpath定位方式:根据HTML中元素的路径定位的,如果其他方式定位不到,可以用这个方式定位,基本上元素用xpath都能定位到,定位策略很多,相比css定位速度会慢一点,如果没有性能要求,可以直接采用xpath方式定位


8. xpath定位到了,但是属性内容经常会变怎么办?

参考答案:

看看属性值的变化情况,如果值的一部分是固定的,只是其中一部分是变化的,比如id是随机生成的,但是有一部分值是固定的,而且这部分值可以唯一识别到这个元素,那么可以使用xpath的contains函数进行模糊匹配定位;如果属性值完全是随机的,没有规律,那么考虑换其他属性定位,如果其他属性也不能用,可以考虑用元素的关系定位,比如父子关系,想定位子元素,可以先找到父元素,再通过父元素定位到子元素,xpath和css都可以通过关系定位。


9. css定位策略有哪些?具体说一下

参考答案:

1、 id选择器:使用id属性值定位

2、 class选择器:使用class属性值定位

3、 元素选择器:使用标签名定位,不太建议使用,因为同名的元素很多

4、 属性选择器:使用元素的属性进行定位

5、 层级选择器 :结合上元素的关系定位,比如父子关系,想要定位子元素,可以先定位到父元素,然后再通过关系找到子元素

6、 css还可以使用元素属性进行模糊匹配定位(包含、以XX开始、以XX结束三种方式)




http://www.kler.cn/news/17234.html

相关文章:

  • KeepAlived高可用环境搭建
  • JavaScript:二叉树(层序遍历)
  • Python | 人脸识别系统 — 人脸识别
  • Linux线程:互斥锁mutex的使用
  • 什么是Spring FactoryBean?有什么作用?
  • ES6:promise简单学习
  • 从MultipartFile上传文件名乱码开始详解编解码知识
  • 2023年会展服务研究报告
  • DDD系列:二、应用架构设计演变
  • 初识WebAssembly
  • 京东T7架构师用470页就把微服务架构原理与开发实战文档讲完了
  • 【华为OD机试 2023最新 】递增字符串(C语言题解 100%)
  • 第二章--第一节--什么是语言生成
  • 【51单片机】数码管显示(样例展示以及异常分析)
  • Camtasia2023最好用的电脑屏幕录制软件
  • 11 | Qt的日志
  • 【UE】高级载具插件-04-坦克瞄准开火
  • mysql索引和事务
  • 很佩服的一个Google大佬,离职了。。
  • 1. 先从云计算讲起
  • NEWS|关于人工智能大型语言模型能否理解的争论
  • Allegro自定义快捷键(修改 ix iy 的步进,其他快捷功能)
  • 计算机视觉介绍
  • React初识
  • 怎么衡量纸白银走势图的强弱?
  • webpack loader原理以及自定义loader
  • 体验ChatGPT在具体应用场景下的能力与表现——vuedraggable的move多次触发问题
  • 五、C++内存管理机制 —— primitives(侯捷)
  • C#学习系列之throw new ApplicationException
  • 图书管理系统【控制台+MySQL】(Java课设)