百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

自动化测试工程师面试题(一)

itomcoil 2025-02-08 11:21 25 浏览

第一部分 python基础

1. 如何使用python 实现两个变量的值交换?

a,b = b,a利用Python赋值的方式


2. python 种的列表和元组有什么区别

a)列表是[]表示,元组是()表示

b)列表种的元素可以增删改,是可变的;元组中的元素只能查,是不能变动的。


3. python 中的局部变量和全局变量是什么?

全局变量:在函数外或全局空间种声明的变量称为全局变量。这些变量可以由程序中的任何函数访问。

局部变量:在函数内声明的任何变量都称为局部变量。此变量存在于局部空间中,而不是全局空间中。


4. pythn是否区分大小写?

是。Python是一种区分大小写的语言


5. 函数是什么,python中如何定义函数?

函数是一个代码块,,只有在被调用时才会被执行。要在Python种定义函数,需要使用def关键字。


6. python面向对象编程种,关键字self的含义是什么?如何使用?

self 表示类的实例或对象。在python中,self放在类的方法种的第一个参数。


7. python编程种,break,continue 的区别是什么?

break 是终止循环,跳出本层次循环的含义;continue是跳过当次循环,转而去判断下一次循环条件。


8. 在python中使用range()函数生成一个,1、3、5、7、9的列表怎么做?

Range(1,10,2)


9. python字符串转换题型?

Capitalize()函数可以将字符串的第一个字母大写;lower()函数把字符串转换为小写;upper()函数把字符串转换为大写等。


10. 函数中的不定长参数有哪两种形式表示,为什么要使用?

有 *args,**kwargs两种形式,当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用*args。**当我们不知道将多少关键字 参数传递给函数时使用kwargs,或者它可以用于将字典的值作为关键字参数传递。


11. 列表或元组的索引使用负指数,功能是什么?

Python 中的序列是索引的,它由正数和负数组成,正数的索引使用‘0’作为第一个索引,‘1’作为第二个索引,进程继续使用。负数的索引从‘-1’开始,表示序列中的最后一个索引,‘-2’作为倒数第二个索引,序列向正数一样前进。


12. 如何在python中进行文件操作?

文件操作包含增删改查,要在pyhton中删除文件,先导入os模块,然后需要使用os.remove()函数;要在python中增加和修改文件,可以使用自带的open函数。


13. 之前公司拟用过的python编程规范是如何的?

包:全部小写,单词之间用下划线隔开,如:common_function模块

文件:全小写,单词之间用下划线隔开;

类:大驼峰命名法则,如:BasePage

属性/变量:全小写,单词之间用下划线隔开

方法/函数:全小写,单词之间用下划线隔开,动词写前面,如:open_url

全局变量:全大写,单词之阿金用下划线隔开,如:EXCEL_PATH


14. 如何在python中生存随机数?

可以使用python自带的random库,我之前在使用httprunner构建随机参数化封装的时候用过;random.randint(n,m)生成n到m范围内的一个随机数;random.choice([1,2,3,4,5,6,7,8,9,0]),从序列中随机选取一个元素。


15. 如何使用一行代码实现求1到1000之和?

使用该代码即可sum(range(0,1001))


16. python中的断言如何实现?

关键字:assert assert后面跟合法的表达式,当表达式为True时,不做任何操作,为False时会抛出异常,assert可以快速定位代码中的错误。


17. python 面向对象中的方法,都默认有一个参数self,作用是什么?

在python的类中self代码实例本身,具体来说,是该实例的内存地址。在调用实例的方法时,python解释器会自己把实例和变量传给类的函数中的self。


18. python 如何安装第三方模块?以及用过哪些第三方模块?

一般使用python内置的包管理工具,pip 进行在线安装,好处是可以自动解决包依赖问题,也可以使用离线安装方式,下载离线安装包后,进行解压,然后在解压的文件夹下执行python setup.py install即可安装。之前在企业用过selenium,requests,jsonpath,appnium,httprunner,Django等。


19. python 中自带的re模块match和search方法有什么区别。

match与search函数功能一样,match匹配字符串开始的第一个位置,search是在字符串全局匹配第一个符合规则的字符串。


20. 什么是正则的贪婪匹配?

贪婪匹配:正则表达式一般默认趋向于最大长度匹配,也就是所谓的贪婪匹配。非贪婪匹配:就是匹配到结果就好,就少的匹配字符。比如正则中的元字符。


21. def func(arg1,arg2=[])这种写法会有什么作用和效果?

该题考查函数中包含可变类型参数--列表,每次调用这个方法arg2不会每次都初始化,而是保留上一次的值,如果每次都想初始化,需要给arg2一个默认值none。


22. 一行代码如恶化实现删除列表中重复的值?

List(set(1,2,3,2))先把类别转化成集合类型,这样已经去重,然后转换成列表类型。


23. python面向对象中的继承有什么特点?

在python中,新建的类可以继承一个或多个父类(其他语言只能继承一个父类),父类又可以称为基类或超类;python3版本无论类是否继承object父类,都默认继承object。


24. 在python中,函数和方法的区别是什么。

函数:函数是封装了一些独立的功能,可以直接调用,python内置了许多函数,同时可以自建函数来使用。

方法;方法和函数类似,同样封装了独立的功能,但是方法需要通过对象来调用,表示针对这个对象要做的操纵,使用时采用对象+.进行调用。


25. Python 中异常处理写法

try:
'''执行语句'''
except
: #异常对象1
'''触发异常后执行语句'''
except
: #异常对象2
'''触发异常后执行语句'''
finally
: '''有没有一次都执行的语句'''
Else: '''没有异常执行的语句'''

一般except中一般把子类异常对象写在前面,父类对方写在后面。如果匹配,

子类对象提前触发,能显示更细致的报错原因。华友一个raise关键子,可以手动触发异常,一般和条件语句使用,作为第三方自定义业务异常用。


26. isinstance 作用以及应用场景?

Isinstance(对象参数,类参数)检查对象是否四该类的对象。


27. json序列化时,默认遇到中文会转换成unicode编码格式,如果想要保留中文怎么办?

之前我在接口测试框架中使用requests调用传递json数据姐时遇到过该问题,当时时这样处理的:json.dumps({"name":"小明"},ensure_ascii=False)。


28. Python的with关键字如何理解和使用?

它时一种上下文管理协议,目的在于从流程图中把try,except和finally关键字和资源分配释放相关代码统统去掉,简化try....except....finally的处理流程,简单来说,with表达式其实是try-finally的简写形式。但是又不是全相同。所谓上下文管理协议。这个类的实体里面要包含有对__enter__和—__exit__函数的定义才行。

使用:一般可以用来循环读写文件等使用。With后接一个打开文件对象,然后语句块中对文件进行循环操作,操作完文件后,自动结束。

一般应用场景:1、文件操作。2、进程线程之间互斥对象。3、支持上下问其他对象。


29. python函数有那些参数类型?

必备参数、默认值参数、关键字参数、收集参数(不定长参数,有*和**两种参数,*表示传递元组,**表示传递字典)。


30. Python的浅拷贝,深拷贝如何理解?

浅拷贝只是对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。浅拷贝的特点:公用一个值;这两个变量的内存地址一样;对其中一个变量的值的改变,另外一个变量的值也会改变;

如:L1 = [1,2,3];L2= L1

深拷贝:一个变量对另外一个变量的值拷贝。

深拷贝的特点:两个变量的内存地址不同;两个变量各有自己的值,且互不影响;对其任意一个变量的值的改变不会影响另外一个

如:L1 = [1,2,3];L2 = L1[:]

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...