1.为什么使用selenium?其原理是什么?
selenium开源代码工具,它是免费的,可以跨平台测试所有主流浏览器,然后selenium方便和单元测试结合管理和生成测试报告;
selenium是使用http连接webdriver,客户端可以使用java或python各种语言来实现。
常见异常:找不到元素,等待超时,元素不可见,元素已经被刷新;
用selenium做项目需要了解什么?了解项目业务,了解selenium的常用api,webdriver 要和浏览器相对应,最后要用测试框架组织case传出测试结果
2.怎么开展自动化测试?
根据业务特性整理可以做自动化测试的模块,根据优先级已经策划人员现状来制定自动化测试计划;我们从功能用例中挑选合适的用例来转成自动化用例;框架选型:选择合适的编程工具和语言来实现;python语言简单易上手;自动化测试脚本的开发;根据项目制定自动化的执行方案;测试报告的分析工作;自动化测试成果的汇报。
3.自动化测试框架
为接口自动化测试搭建的,unittest,利用分层思想、ddt数据驱动;包括以下几个模块:(1)封装了通用的工具模块:http请求、数据库操作、excel数据读写、日志打印、截图(2)元素定位;测试数据:excel、yaml(3)测试用例:用例收集、用例执行(4)测试报告、日志
4.python函数重载机制
函数重载机制为了解决2个问题:可变参数类型、可变参数个数,python中参数不用申明任何类型,函数可以接受任何类型的参数,如果函数功能相同,一个函数就可以处理了,在python中通过一个*或2个*来处理参数可变个数,所以python里面他不需要处理函数重载;
5.需要鉴权的接口怎么做?
首先接口是采用什么方式进行鉴权的,分为3类:cookies、session、token
cookies+session可以使用request里面的session对象创建实例发送请求,他会自动记录cookie信息;如果是token,先分析token是怎么返回的,然后提取对应的token值,在发送请求的时候传入token值
6.python中类方法、实例方法、静态方法有什么区别?
类方法是类的方法,在定义的时候加@classmethod的修饰,形参是cls,类和实例都可以调用;实例方法:只有实例能调用,形参是self,指的是对象本身;静态方法:是一个类的函数,只是刚好放在类里面,需要在上方加@staticmethod,可以使用对象调用,静态方法跟类没有太大关系;
7.unittest
TestCase编写测试用例,编写的测试用例都要继承这个类;TestSuit加载测试用例的容器,也是一个测试套件;TestLoader是用来收集测试用例,并加载到测试套件里面;TestTextRunner是用来运行测试用例,并生成文本的测试报告,我们可以换成HtmlTestRunner来生成html测试报告;
8.自动化测试有误报bug 吗? 有,手工定位非bug,原因是:元素定位不稳定,尽量提高稳定性;开发更新了页面测试没更新;
9.执行脚本过程中如何实现元素高亮? 利用JavaScript去修改元素的边框样式达到高亮
10.定位元素失败考虑哪些原因? 页面加载元素过慢, 延长等待时间;元素在frame中,使用driver.switch_to.frame()去定位;动态元素,使用其父、兄弟、子元素去定位;识别了元素,但是不可操作,先使用js 修改为可编辑完成前置操作;
11.遇到弹框怎么操作?使用driver.switch_to.alert()先跳转到弹出窗口,通过accept点击确定按钮,通过dismiss取消操作,通过text()获取弹出的文本
12.如何处理多窗口? # 获取打开的多个窗口句柄:windows = driver.window_handles,# 切换到当前最新打开的窗口:driver.switch_to.window(windows[-1])
13.日期控件可选,不能编辑;定位到日期选择框,先使用JavaScript将元素只能选修改为可输入,使用sendkeys()发送日期;
14.举例说明你遇到的异常:NoSuchElementException:没有该元素异常;TimeOutException:超时异常;ElementNoVivisableException:元素不可见异常
15.quit与close区别:close关闭当前聚焦的tab页面,单个用例执行完成时使用;quit退出session,关闭浏览器所有页面;全部用例执行完成时使用;
网友评论