python_自动化测试相关问题

自动化代码中,用到了哪些设计模式?
  1. 1.单例设计模式

  2. 2.工厂模式

  3. 3.PO设计模式

  4. 4.数据驱动模式

  5. 5.面向接口编程设计模式

什么是断言(Assert)?
  1. 断言Assert用于在代码中验证实际结果是否与预期结果相符

  2. 如果测试用例执行失败会抛出异常并提供断言日志

什么是web自动化测试
  1. web自动化测试是从UI(用户界面)层面进行的自动化测试

  2. 测试人员通过编程自动化程序(测试用例脚本)来打开浏览器测试网站的业务逻辑

什么是Selenium?
Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试
写出Selenium中最熟悉的接口或类
WebDriver 、 InternetExplorerDriver、 ChromeDriver、 WebElement、WebDriverWait、 By
元素定位类型有哪些?
  1. By类一共有8种元素定位方式,都是静态方法:

  2. By.id()

  3. By.name()

  4. By.tagName()

  5. By.className()

  6. By.cssSelector()

  7. By linkText()

  8. By partialLinkText()

  9. By.xpath()

Xpath是什么
  1. xpath是查找web页面元素的一种方式,相当于元素在dom中间的一个路径,可以采用绝对路径和相对路径的方式进行定位

  2. xpath对于定义动态页面元素需谨慎使用,因为如果页面结构发生变化,定位信息可能需要变化

findElement()和findElements()方法有什么区别
  1. 两者都是查找页面元素的方法

  2. findElement():查找一个页面元素,只会返回一个webElement对象

  3. findElemnets():查找页面上所有符合匹配的元素,返回元素集合

登录按钮除了用click方法进行点击以外还有其他方式吗
还可以用submit()方法,前提是input元素的type为submit
怎么提供Selenium脚本的执行速度
  1. 优化等待时间:使用WebDriverWait智能等待来代替线程等待sleep和隐式等待implicityWait

  2. 减少不必要的操作:如果直接进入某页面代替经过一系列自动化操作进入某页面在服务器允许的情况下,使用多线程实现并发执行测试用例

怎么对含有验证码的功能进行自动化测试
  1. 1.图像识别,技术难度大,效果不佳,不推荐

  2. 2.屏蔽验证码,邀请开发处理,但在预生产环境或者生产环境不推荐

  3. 3.万能验证码,使用一个复杂的其他人无法猜到的验证码

怎么验证复选框按钮是否被选中
可以使用元素的isSelected()方法,如果返回的是true则说明被选中,否则未被选中
如何处理alert弹窗?
  1. 处理alert弹窗首先需要先跳转到alert上,然后在点击确定或取消按钮

  2. Alert alert=driver.switchTo(); //切换到alert

  3. alert.accept(); //确定

  4. alert.dismiss(); //取消

下拉菜单中如何取选中一个菜单项
  1. 如果下拉菜单是select标签,使用方法:selectByValue() 或者 selectByIndex() 或者selectByVisibleText()即可

  2. 如果这个下拉菜单不是通过select标签创建,则直接通过xpath定位元素然后去点击选择

如何模拟浏览器的前进和后退、刷新操作
  1. driver.navigate().back();//后退

  2. driver.navigate().forward(); //前进

  3. driver.navigate().efresh(); //刷新

怎么获取当前页面URL
String url=driver.getCurrentUrl()
WebDriver的close()和quit()方法的区别
  1. close()方法只是关闭当前正在操作的窗口

  2. quit()是关闭了所有已经打开的窗口

自动化测试有哪些缺陷
  1. 成本比较大,而成效可能并不高

  2. 适合自动化测试的功能有限

  3. 某些功能操作相对比较复杂,比如验证码

  4. 维护成本高,一旦项目需求变更,自动化测试脚本和用例就需改进

web端功能自动化,如何实现(非input型上传)上传文件
与windows窗口进行交互,可以使用pywin32库实现
遇到这种class中间有空格的控件,如何通过class定位
  1. xpath定位:直接 //d1[@class="inf_bar clearfix"]

  2. css定位:d1.inf_bar.clearfix

Selenium自动化,遇到iframe如何处理
使用switch_to.frame切换进iframe当中后,再去定位其中的元素并操作
web端功能自动化中,如何切换句柄
先获取所有窗口句柄,然后使用switch_to.window()切换到指定窗口
测试中遇到readonly属性控件,需要如何处理

先关闭readonly 属性,然后再操作元素

  1. a = [1, 6, 7, 4, 4, 5, 4, 5, 4, 5, 5, 6, 7, 8, 5, 6, 7, 3, 4, 2, 2, 1, 4, 8, 9, 4, 5, 6]

  2. def get_datas(a):

  3. result = []

  4. data_dict = dict()

  5. for item in set(a):

  6. data_dict[str(item)] = a.count(item) # 键:值

  7. print(data_dict)

  8. res = sorted(data_dict.values(),reverse=True)

  9. print(res)

  10. for num in res:

  11. for key, value in data_dict.items():

  12. if num == value and key not in result:

  13. result.append(key)

  14. print(result)

  15. get_datas(a)

例如:passwd={"admin":"123456","user1":"123456"}满足的条件
  1. 1.设计一个登陆程序,不同的用户名和对应密码存在一个字典里,输入正确的用户名和密码去登陆

  2. 2.首先输入用户名,如果用户名不存在或者为空,则一直提示请输入正确的用户名

  3. 3.当用户名正确的时候,提示输入密码,如果密码跟用户名不对应,则提示密码错误请重新输入

  4. 4.如果密码输入错误超过3次,中断程序运行

  5. 5.当输入密码错误时,提示还有几次机会

  6. 6.当用户名和密码都输入成功的时候,提示登录成功

  7. users = {"admin": "123456", "user1": " 123456"}

  8. count = 0

  9. def login():

  10. global count

  11. username = input("请输入用户名:")

  12. if username == None or username == "":

  13. login()

  14. if username not in users.keys():

  15. print("用户名输入不正确,请重新输入用户名:")

  16. login()

  17. while (count < 3):

  18. passwd = input("请输入密码:")

  19. if passwd == users[username]:

  20. print("登录成功!!")

  21. count = 3

  22. else:

  23. count += 1

  24. print("密码输入错误,您还有{0}次机会。".format(3 - count))

  25. login()

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值