呕心沥血总结的Python自动化测试面试题

news2024/11/22 20:15:25
  •  📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢软件测试面试题分享: 1000道软件测试面试题及答案
  • 📢软件测试实战项目分享: 纯接口项目-完整接口文档
  • 📢软件测试实战项目分享:WEB 测试自动化项目实战
  • 📢软件测试学习教程推荐:火遍全网的《软件测试》教程 

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

单例设计模式
工厂模式
PO设计模式
数据驱动模式
面向接口编程设计模式

2、什么是断言( Assert) ?
断言Assert用于在代码中验证实际结果是不是符合预期结果,
如果测试用例执行失败会抛出异常并提供断言日志

3、什么是web自动化测试
Web自动化测试是从UI (用户界面)层面进行的自动化测试,
测试人员通过编程自动化程序(测试用例脚本)来打开浏览器测试网站的业务逻辑。

4、什么是Selenium?
Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试
 

5、写出Selenium中你最熟悉的接口或类
WebDriver、InternetExplorerDriver、 FirefoxDriver、 ChromeDriver、 WebElement、WebDriverWait、 By

6、元素定位类型有哪些?

By类一共有8种元素定位方式,它们都是静态方法:

By.id():
By.name():
By.tagName():
By.className():
By.cssSelector():
By linkText():
By partialLinkText():
By.xpath():

7、Xpath是什么?

它是查找web页面元素的一种方式,相当于元素在dom中间的一个路径,可以采用绝对路径和相对路径的方式进行定位
它对于定义动态的页面元素有很大的帮助,同时也需要谨慎使用,因为如果页面结构发生变化,那么定位信息也可能需要变化。

8、findElement()和findElements(方法有什么区别
两个都是查找页面元素的方法
findElement():查找一个页面元素,只会返回一个WebElement对象
findElements() :查找页面上所有符合匹配的元素,返回元素集合

9、登录按钮除了用click方法进行点击以外还有其他方式吗?
还可以使用submit()方法,前提是input元素的type为submit

10、怎么提高Selenium脚本的执行速度
优化等待时间:使用 WebDriverWait 智能等待来代替线程等待 sleep 和 隐式等待 implicityWait
减少不必要的操作:如直接进入某页面代替经过一系列自动化操作进入某页面在服务器允许的情况下,使用多线程实现并发执行测试用例.
11、怎么对含有验证码的功能进行自动化测试的
1) :图像识别,技术难度大,效果不佳,不推荐
2) :屏蔽验证码,邀请开发处理,但在预生产环境或者生产环境不推荐
3) :万能验证码,使用一个复杂的其他人无法猜到的验证码

12、怎么验证复选按钮是不是被选中

可以使用元素的 isSelected() 方法,如果返回的是 true 则说明被选中,否则表明未被选中

13、如何处理alert弹窗?

处理 alert 弹窗首先需要先跳转到 alert 上,然后在点击确定或者取消按钮,
Alert alert = driver.switchTo().alert(); //切换到alert
alert.accept0; //确定
alert.dismiss0; //取消

14、下拉菜单中如何去选择一个菜单项?
如果下拉菜单是select标签,使用方法: selectByValue() 或者 selectByIndex() 或者 selectByVisibleText() 即可
如果这个下拉菜单不是通过 select 标签创建,则直接通过 xpath 定位元素然后去点击选择

15、如何模拟浏览器的前进和后退、刷新操作
driver.navigate().back()://后退
driver. navigate().forward()://前进
driver.navigate0.efresh()://刷新

16、怎么获得当前页面的URL?
String url = driver.getCurrentUrl();

17、WebDriver的close()和quit(方法的区别是什么?
close()方法只是关闭当前正在操作的窗口
quit()是关闭了所有已经打开的窗口

18、你觉得自动化测试用哪些缺陷
成本比较大,而成效可能并不高
适合自动化测试的功能有限
某些功能操作相对复杂,比如验证码
维护成本高,一旦项目需求变更,自动化测试脚本和用例就需要改进

19、Web端功能自动化,如何实现(非input型上传)上传文件
与windows窗口进行交互,可以使用 pywin32库 实现。

20、遇到<d1 class="inf-bar clearfix"> 这种class中间有空格的控件,如何通过class定位?
xpath定位:直接//d1 [@class="inf_bar clearfx"]
css定位: d1.inf_bar.clearfix

21、Selenium自动化,遇到 iframe 如何处理?
使用switch_ to.frame 切换进 iframe 当中后 ,再去定位其中的元素并操作

22、Web端功能自动化中,如何切换句柄。
先获取所有窗口句柄,然后使用 switch_ to.window() 切换到指定窗口
23、测试中遇到 readonly 属性的控件,需要如何处理?简述一下思路
先修改关闭r eadonly 属性,然后再操作元素。
需求:给定一个只包含正整数且非空的数组,返回该数组中重复次数最多的前N个数字(返回结果按重复次数从多到少降序), 请用熟悉的语言实现该需求。10分钟内写出来

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]


def get_datas(a):
    result = []
    data_dict = {}
    # 键值对:键:数字,值:在列表中的次数
    for item in set(a):
        data_dict[str(item)] = a.count(item)
    print(data_dict)
    # 将键值对按值(数字出现的次数)排序 ---从高到低排序
    res = sorted(data_dict.values(),reverse=True)
    for num in res:
        for key,value in data_dict.items():
            # 如果值在列表中不存在,则添加到结果列表中
            if num == value and key not in result:
                result.append(key)

    return result


a1 = get_datas(a


执行结果:

24、例如: passwd={"admin'":"123321","user1":" 123456"} 满足一下条件?
1、设计一个登陆程序,不同的用户名和对应密码存在一一个字典里面,输入正确的用户和密码去登陆,
2、首先输入用户名,如果用户名不存在或者为空,则一直提示输入正确的用户名
3、 当用户名正确的时候,提示去输入密码,如果密码跟用户名不对应,则提示密码错误请重新输入。
4、如果密码输入错误超过三次,中断程序运行。
5、当输入密码错误时,提示还有几次机会
6、用户名和密码都输入成功的时候, 提示登陆成功!
 

users = {"admin": "123456", "user1": " 123456"}
count = 0


def login():
    global count
    username = input("请输入用户名:")
    if username == None or username == "":
        login()
    if username not in users.keys():
        print("用户名输入不正确,请重新输入用户名:")
        login()

    while (count < 3):
        passwd = input("请输入密码:")
        if passwd == users[username]:
            print("登录成功!!")
            count = 3
        else:
            count += 1
            print("密码输入错误,您还有{0}次机会。".format(3 - count))


login()

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1361476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScrip-初识JavaScript-知识点

初识JavaScript 编程基础编程计算机语言标记语言编译器&解释器 计算机基础计算机组成数据存储数据存储单位程序运行 认识JavaScript什么是JavaScriptJavaScript作用HTML&CSS&JavaScript的关系浏览器执行JavaScript过程JavaScript的组成JavaScript初体验 JavaScript…

八大在线项目实习 2024年第一期即将开班

八大项目&#xff1a; 某实习网站招聘信息采集与分析&#xff08;Python数据采集与分析&#xff09; 股票价格形态聚类与收益分析&#xff08;Python金融分析&#xff09; 某平台网络入侵用户自动识别&#xff08;Python机器学习&#xff09; 某平台广东省区采购数据分析&#…

企业微信开发:自建应用:接收消息(企业内部服务器)/回调配置

概述 在企业微信的自建应用中&#xff0c;用户触发了某些行为&#xff08;发送消息、进行菜单操作或者外部联系人变更等&#xff09;&#xff0c;要发送相关信息给企业内部服务器。 备注&#xff1a;接收消息 和 回调&#xff0c;在本文中指代相同的行为&#xff0c;即企业微信…

Jmeter接口自动化测试 :Jmeter变量的使用

在使用jmeter进行接口测试时&#xff0c;我们难免会遇到需要从上下文中获取测试数据的情况&#xff0c;这个时候就需要引入变量了。 定义变量 添加->配置元件->用户自定义的变量 添加->配置元件->CSV 数据文件设置 变量的调用方式&#xff1a;${变量名} 变量的作…

设计模式——最全梳理,最好理解

新年献礼&#xff01; 设计模式呕心梳理 创建型模式 单例模式&#xff08;Singleton Pattern&#xff09;https://blog.csdn.net/qq_34869143/article/details/134874044 整理中... 结构型模式 代理模式&#xff08;Proxy Pattern&#xff09;https://blog.csdn.net/qq_34…

期货日数据维护与使用_日数据维护_界面代码

目录 写在前面 界面图示 ​编辑 代码 执行代码 写在前面 本文默认已经创建了项目&#xff0c;如果不知道如何创建一个空项目的&#xff0c;请参看以下两篇博文 PyQt5将项目搬到一个新的虚拟环境中 https://blog.csdn.net/m0_37967652/article/details/122625280 python_P…

软件测试面试总结分享

第一轮 自我介绍。根据自己的情况扩展。你是怎么理解软件测试的&#xff1f;我觉得软件测试是很重要的岗位&#xff0c;如果一个系统开发完后不通过测试去产品质量把关&#xff0c;产品不能正常运行可能造成的后果&#xff0c;损失钱财、损失时间、损失客户等等&#xff0c;所…

2024苹果Mac电脑免费文件数据恢复软件EasyRecovery

EasyRecovery是一个操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序&#xff0c;它不会往源驱上写任何东西&#xff0c;也不会对源驱做任何改变&#xff01;EasyRecovery是一个操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序&#xff0c;它不会往源驱上…

【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例

Spring自动定义Jackson转换Null得方法 背景MessageConverter 使用Jackson原生方式处理空字段&#xff08;次重点方案&#xff09;ObjectMapper的配置选项通过使用注解的方式 MappingJackson2HttpMessageConverter&#xff08;重点方案&#xff09;创建MappingJackson2HttpMessa…

深度学习在工地安全帽识别技术的应用与展望

当我们谈论“工地安全帽识别”时&#xff0c;实际上我们在探讨的是如何利用深度学习图像识别技术来提高建筑工地的安全性。这一技术的应用可以显著提高工地安全管理的效率和有效性&#xff0c;是现代建筑工程管理中不可或缺的一部分。以测评的北京富维图像的工地安全帽识别为例…

【管理篇 / 登录】❀ 06. macOS下使用USB配置线登录 ❀ FortiGate 防火墙

【简介】飞塔防火墙上都会配有CONSOLE接口&#xff0c;包装里都会配置一根USB配置线&#xff0c;通过这个接口和这根线&#xff0c;我们可以用命令的方式登录飞塔防火墙。随着苹果电脑的普及&#xff0c;我们来学习如何在macOS中使用USB配置线登录飞塔防火墙。 早期飞塔防火墙包…

【数据分享】2023年我国省市县三级的商务住宅数量(4类设施/Excel/Shp格式)

产业园区、住宅区、楼宇等商务住宅的数量是一个城市基础设施完善程度的重要体现&#xff0c;一个城市商务住宅的种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的城市化水平越高&#xff01; 本次我们为大家带来的是我国各省份、各地级市、各区县三个层级的商…

静态网页设计——网上书店(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 使用技术&#xff1a;HTMLCSSJS 主要内容&#xff1a;网上式的书店。是一种高质量&#xff0c;更快捷&#xff0c;更方便的购书方式。网上书店不仅可用于图书的在线销售…

使用 Maven 的 dependencyManagement 管理项目依赖项

使用 Maven 的 dependencyManagement 管理项目依赖项 介绍 在开发 Java 项目时&#xff0c;管理和协调依赖项的版本号是一项重要而繁琐的任务。 而 Maven 提供了 <dependencyManagement> 元素&#xff0c;用于定义项目中所有依赖项的版本。它允许您指定项目中每个依赖…

thinkadmin列表根据值判断男女显示和form选择select

{field: gs, title: 公司, align: left, minWidth: 140,templet

安全加固之weblogic屏蔽T3协议

一、前言 开放weblogic控制台的7001端口&#xff0c;默认会开启T3协议服务&#xff0c;T3协议则会触发的Weblogic Server WLS Core Components中存在反序列化漏洞&#xff0c;攻击者可以发送构造的恶意T3协议数据&#xff0c;获取目标服务器权限。 本文介绍通过控制T3协议的访问…

淘宝京东1688商品详情API接口,搜索商品列表接口

前言 在实际工作中&#xff0c;我们需要经常跟第三方平台打交道&#xff0c;可能会对接第三方平台API接口&#xff0c;或者提供API接口给第三方平台调用。 那么问题来了&#xff0c;如果设计一个优雅的API接口&#xff0c;能够满足&#xff1a;安全性、可重复调用、稳定性、好…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的掉线自动重连的技术背景通过PnP事件函数检查Baumer工业相机是否掉线在NEOAPI SDK里实现相机掉线重连方法&#xff1a;工业相机掉线重连测试演示图…

x-cmd-mod | zuz - 压缩或解压文件

目录 简介首次用户子命令x zuz zx zuz uzx zuz uzrx zuz ls 相关链接 简介 zuz 为 x-cmd 中的必用模块之一&#xff0c;提供压缩与解压文件的功能。 x z 就是调用 x zuz z&#xff0c;可将目标文件压缩根据后缀名成指定格式&#xff0c;x uz 则可以解压任何格式的压缩包 首次…

音乐制作软件Studio One mac有哪些特点

Studio One mac是一款专业的音乐制作软件&#xff0c;该软件提供了全面的音频编辑和混音功能&#xff0c;包括录制、编曲、合成、采样等多种工具&#xff0c;可用于制作各种类型的音乐&#xff0c;如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件特点 1. 直观易用的界面&…