百度面试经历

1.你如何使用selenium进行测试?

pytest+selenium+webdriver+allure

必要的一些依赖包

使用分层设计思想,PO模式

 

2.你做自动化测遇到过什么问题?如何解决?

接口自动化:

问题:接口依赖,需要上一个接口的参数但是开发没有写完这个接口

解决方式:mock数据用flask自己写一个接口先用着

 

ui自动化:

(1)需求经常变动,脚本维护成本高

(2)特殊元素难以定位

(3)脚本执行不稳定,经常性fail

 

为了提高UI自动化脚本的稳定性,你有做了哪些工作?

(1)尽量用相对路径的xpath表达式

(2)查找元素优先用显示等待

(3)用例与用例之间尽量避免产生依赖,用例可以独立执行

(4)用例执行结束后对测试场景进行还原,避免影响其他用例的执行

(5)脚本执行失败后加入重试机制,提升用例的稳定性

(6)尽量保证单独的测试环境,避免其他的测试同步进行

 

为了提高UI自动化脚本的可维护性,你有做了哪些工作?

(1)Page Object分层模式,业务和页面元素分离

(2)测试数据和用例分离,单独维护测试数据

(3)页面和用例共性提取

(4)可追溯日志

 

4.做自动化测试的目的?

优化测试速度:可非常快速的运行上万条记录
提高准确性、稳定性:可以不为外界因素干扰,准确运行测试用例
确定性:能真实快速搭建测试环境,测试数据,重现缺陷
提高工作效率:一边运行自动化测试,一边准备测试报告
测试环境搭建:可以结合多种编程语言及技术协助搭建测试环境,防止手工测试重复劳动,如批处理技术
提高技能:可提高测试人员技能,同时提高对测试的兴趣,防止对手工测试感觉枯燥

 

5.测试报告哪里来的,主要统计什么?

一轮测试结束以后把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。

包括以下内容:

测试报告内容
描述测试的环境、
测试人员和时间、
测试的工作量、
用例数的统计、
对需求的覆盖率、
用例有效性、
测试执行的效率、
还包含对缺陷数分布、
缺陷等级、
用例通过率进行统计、
还有对测试对象的质量评价

 

6.pytest有哪些注解,优点是什么?

https://blog.csdn.net/wd1282988143/article/details/88794390

 pytest:   用例格式--简单,可以兼容unittest用例;

在测试用例中使用fixture函数,命名方式灵活,不局限于setup和teardown这几个命名

pytest直接使用assert 表达式。

pytest有pytest-HTML、allure插件。

pytest支持用例执行失败重跑,pytest-rerunfailures插件。

pytest直接使用 @pytest.mark.parametrize 装饰器进行参数传递。

pytest可以通过 @pytest.mark 来标记测试用例,执行命令加上参数“-m”即可运行标记的用例。

 

7.你知道那些测试框架?

unittest,pytest,nose,RF

https://www.jianshu.com/p/b87ec158aad8

 

8.什么是web自动化?

从UI(用户界面)层面进行的自动化测试,测试人员通过编写自动化程序模拟人,进行业务逻辑操作和界面操作。

 

9.selenium中你熟悉的接口或者类。

# 获取WebDriver对象 driver=webdriver.Chrome()

##发起GET请求 driver.get('http://example.com')

# 获取当前页面的URL url=driver.current_url

# 获取HTML源码 source=driver.page_source

# 刷新 driver.refresh()

# 截图 driver.save_screenshot('sougou.png')

# 前进 driver.forward() # 后退 driver.back()

# 最大化窗口 driver.maximize_window()

# 关闭当前页面(如果是最后一个页面,则退出浏览器) # driver.close()

# 退出浏览器 # driver.quit()

# 查找单个元素 find_element  element=driver.find_element(by=By.ID,value='id')

# 查找多个元素(同上,返回list)find_elements

#显示等待,隐式等待

https://blog.csdn.net/topleeyap/article/details/79049147

 

10.Xpath是什么?

XPath即为XML路径语言,在web自动化中用来进行元素定位。

 

11.登录按钮除了click还有别的方法吗?

1.支持回车的话可以send_keys(Keys.ENTER)

2.input元素的type为submit还可以使用submit()方法

 

12.讲述你知道的等待方式

强制等待time.sleep(2)

隐式等待e = driver.implicitly_wait(30)

显示等待e = WebDriverWait(driver,30,poll_frequency=0.5)until(expected_conditions.presence_of_element_located((By.XPATH,"//input[@id='kw'")

常见三种:

元素可见:visibility_of_element_located()

元素加载出presence_of_element_located()

元素可点击:element_to_be_clicked()

 

13.怎么对含有验证码的功能进行测试

1.找开发去掉,或者写一个万能验证码(经济实惠)

2.使用OCR技术,技术难度比较大,耗时多,识别率不是100%(不建议使用)

3.人工打码(收费)

 

14.如何验证复选按钮是否被选中?

https://www.cnblogs.com/yoyoketang/p/6128675.html

is_selected

 

15.如何处理alert弹窗

T直接切换到 alert 弹框上面进行,确认或者取消 switch_to 不需要加括号

myalert = driver.switch_to.alert

myalert.accept()

myalert.dismiss()

 

16.如何用web进行鼠标操作

1.初始化鼠标操作

action = ActionChains(driver)

2.定位要操作的元素

element = driver.find_element_by_id('')

3.执行对应操作

鼠标右击 action.context_click(element)

总结操作方式:
move_to_element() 鼠标悬浮;最常用的操作

click()单击
double_click() 双击操作
context_click() 右键操作
drag_and_drop(source, target) 拖拽操作:鼠标左键按住并拖拽元素到另一个区域,然后释放鼠标

4.释放鼠标(执行鼠标操作)

action.perform()

17.如何用定位下拉框

#下拉框的处理
# select方法一: 直接定位到需要的元素
# doc_elem = driver.find_element_by_xpath("//option[@value='doc']")
# doc_elem.click()
# time.sleep(2)

# select方法二: 使用 selenium 封装(高级方法)
# 第一步:定位 select 元素
s_elem = driver.find_element_by_name('ft')
# 第二部:初始化 Select 类
select = Select(s_elem)
# 第三部:选择, 三种方式:1, value, 2, text,  3, index
select.select_by_value('doc')#属性值# select.select_by_visible_text('微软 Word (.doc)')#文本方式
# select.select_by_index(1) #索引方式

#select 方法三:分两步定位,限定为到下拉框在定位到下拉框里面的选项
#doc_elem1 = driver.find_element_by_xpath("//option[@value='select']")
#doc_elem.click().perform()
#doc_elem2 = driver.find_element_by_xpath("//option[@value='doc']")
#doc_elem2.click().perform()

18.举一个WebDriver中方法重载的例子。

 

19.下拉菜单如何选择一个下拉单项

定位元素,直接点击

20.如何模拟游览器得前后操作?

driver.forward()前进

driver.back()后退

21.如何获取当前得url

# 获取当前页面的URL url=driver.current_url

# 获取HTML源码 source=driver.page_source

22.如何从文本框中获取打字文本?

https://blog.csdn.net/Vicky_P/article/details/85265952

导入Tkinter

Text 文本域: 多行文字区域,可用来收集(或显示)用户输入的文字,可以编辑文本格式,改变文本框的宽高
Entry 文本框:单行文字域,用来收集键盘输入,自带宽高,不可改变文本格式

get()方法获取Entry 文本框的内容:
txt = entry.get()
get()方法获取Text 文本框的内容:
txt = text.get(“0.0”, “end”)

Text.get(start, end) 的用法:
Text.get(‘0.0’, End)
解析:
第一个参数‘0.0’是指从第0行第0列开始读取(‘1.3’表示从第一行第3列开始读取),第二个参数End表示最后一个字符

23.如何清除文本框得内容

tkinter

text.delete(1.0,Tkinter.END)

搜索框得内容
#  设定搜索内容
search_content = ['java', '测试']
# 定位搜索框的位置
search_key = self.driver.find_element_by_css_selector("input.search-key")
# 清空搜索框中的内容
search_key.clear()
# 搜索
search_key.send_keys(random.choice(self.search_content))

24.如何获取页面上得帧数?

https://www.lizenghai.com/archives/17610.html 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值