python自动化面试题(一)

244 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

1.     公司为什么要开展自动化测试?

我的观点是自动化既不能提高工作效率,也不能提高软件质量。但是我们会选择在功能测试执行之前,选择用自动化程序做冒烟测试,确保老功能通过之后,我们便可以做新功能的测试了。因为自动化测试执行可以选择空闲的电脑进行测试,它不会占用咱们过多的工作时间。如果通过自动化发现了老功能的Bug,则是赚了。不能发现Bug也没有损失。

我们可以通过在设计功能测试用例的时候,简化用例写作(即写一句话用例)来提高用例写作的效率,节约的时间编写自动化脚本,再在测试执行阶段不占用测试执行的时间。这样自动化便可以融入到咱们现在的测试流程中,在不增加人员和测试时间的基础上,顺便把自动化给做了。

理想情况下,开始开发时接口文档比较规范,测试人员可以在开发阶段同步完成部分接口自动化脚本,等到开发提版便可即时使用自动化测试,提高了工作效率。虽然自动化测试不能实现100%的覆盖率,剩下的没有被覆盖的测试点再用手工测试来完成,这样仍然可以提高测试效率。当然要实现这种情况,前提是开发能够提供规范的接口文档,并且需求变更比较小。

其实自动化可以一定程度提高效率,也可以一定程度上提高质量。

2.     你有没有做过自动化测试

遇到这种问题,必须说做过自动化测试,没办法的

from selenium import webdriver from selenium.webdriver.common.by import By # 启动浏览器driver = webdriver.Chrome() # 访问某个网址driver.get( 'http://119.23.55.123/fsmarket/user.php' ) # 通过id定位元素并且实现键盘输入driver.find_element(By.ID, 'username' ).send_keys( 'qianli' ) # 通过name定位元素并实现点击鼠标操作driver.find_element(By.NAME, 'submit' ).click() # python****中的简单断言操作,验证页面结果****assert "No result found" not in driver.page_source # 关闭页面,如果是退出浏览器用quit()driver.close()

注:描述每一行操作的含义及操作

3.     id,name,xpath,css selector这些属性,你最偏爱哪一种

优先id,name进行定位,简单高效,一般输入框、按钮、选择框和下拉框等表单都有id或name属性,比较适合用id和name定位。

页面文字一般缺少id和name属性,但是如果其为超链接,则可以使用LINK_TEXT和PARTIAL_LINK_TEXT进行元素定位。区别是前者必须是完整的超链接文字,后者可以为部分超链接文字。

如果既没有id和name,也不是超链接,这时候可以选择xpath或css Selector进行定位。一般其他方法搞不定的时候用xpath都能够定位到元素,不过多数情况下使用XPATH是用来获取页面上的文字。

除此之外还有CLASS_NAME和TAG_NAME元素定位,根据标签属性来定位,如果标签上存在CLASS_NAME也可以使用CLASS_NAME进行元素定位,该定位方式主要用来进行定位一组元素的:driver.find_elements(By. CLASS_NAME,'CLASS属性值')。