Python 自动化测试面试题目Word文件下载.docx
- 文档编号:17897611
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:14
- 大小:21.68KB
Python 自动化测试面试题目Word文件下载.docx
《Python 自动化测试面试题目Word文件下载.docx》由会员分享,可在线阅读,更多相关《Python 自动化测试面试题目Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
18.
19.
son.test1(11)
20.
2、阅读以下代码,推导最后结果:
defadd(n,i):
returnn+i
deftest():
foriinrange(4):
yieldi
g=test()
fornin[1,10,5]:
21.
g=(add(n,i)foriing)
22.
23.
24.
25.
print(list(g))#结果是[15,16,17,18]
26.
所有的结果都是生成器表达式,不调用它,不从里面取值,就不干活。
附上我的推导过程:
n=1
g=(add(n,i)foriintest())
#print(list(g))#[1,2,3,4]
n=10
g=(add(n,i)foriin(add(n,i)foriintest()))
#print(list(g))#[20,21,22,23]
n=5
g=(add(n,i)foriin(add(n,i)foriin(add(n,i)foriintest())))
g=(add(n,i)foriin(add(n,i)foriin(5,6,7,8)))
g=(add(n,i)foriin(10,11,12,13))
g=(15,16,17,18)
print(list(g))#[15,16,17,18]
27.
3、快速编写前端HTML、JavaScript、Vue代码。
∙HTML、JavaScript代码:
<
!
DOCTYPEhtml>
htmllang="
en"
>
head>
<
metacharset="
utf-8"
/head>
body>
h1id="
title"
xxx公司<
/h1>
p>
xxx公司是一家......<
/p>
divid="
mybox"
h1>
{{a}}<
inputtype="
button"
value="
按我"
v-on:
click="
add()"
/div>
scripttype="
text/javascript"
src="
public/bundle.js"
/script>
28.
29.
/body>
30.
31.
/html>
32.
33.
script>
34.
35.
vartitle=document.getElementById("
);
36.
37.
title.onclick=function(){
38.
39.
alert('
我爱xxx公司,祝我面试成功'
40.
41.
}
42.
43.
44.
∙Vue代码编写:
importVuefrom"
vue"
;
newVue({
el:
"
#mybox"
data:
{
a:
100
},
methods:
add:
function(){
this.a++;
});
4、L=[1,2,3,11,2,5,3,2,5,3],用一行代码得出[11,1,2,3,5]。
list(set(L))
5、L=[1,2,3,4,5],L[10:
]的结果是?
空列表(当时有点紧张,一直在“空列表”和“索引超出范围”两个答案之间徘徊)。
6、L=[1,2,3,5,6],如何得出'
12356'
?
注意,个人觉得这个题有坑,列表的元素不是字符串,所以不能
'
.join(L)。
以下是过程:
s='
foriinL:
s=s+str(i)
print(s)#12356
print(type(s))#<
class'
str'
7、列表和字典有什么区别?
一般都是问列表和元组有什么不同。
(1)获取元素的方式不同。
列表通过索引值获取,字典通过键获取。
(2)数据结构和算法不同。
字典是hash算法,搜索的速度特别快。
(3)占用的内存不同。
8、如何结束一个进程?
(1)调用terminate方法。
(2)使用subProcess模块的Popen方法。
使用简单,具体用法,这里不展开。
9、进程、线程有什么区别?
什么情况下用进程?
什么情况下用线程?
(1)区别:
∙①地址空间和其它资源(如打开文件):
进程之间相互独立,同一进程的各线程之间共享。
某进程内的线程在其它进程不可见。
∙②通信:
进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
∙③调度和切换:
线程上下文切换比进程上下文切换要快得多。
∙④在多线程操作系统中,进程不是一个可执行的实体。
(2)使用场景:
同时操作一个对象的时候,比如操作的是一个全局变量,我用线程,因为全局变量是所有线程共享的。
10、什么是ORM?
为什么要用ORM?
不用ORM会带来什么影响?
∙ORM框架可以将类和数据表进行对应,只需要通过类和对象就可以对数据表进行操作。
∙通过类和对象操作对应的数据表,类的静态属性名和数据表的字段名一一对应,不需要写SQL语句。
∙ORM另外一个作用,是根据设计的类生成数据库中的表。
11、写一段代码,ping一个ip地址,并返回成功、失败的信息。
使用subProcess模块的Popen方法(使用简单,具体用法,这里不展开)。
12、说说接口测试的流程,介绍一下request有哪些内容。
(1)流程:
获取接口文档,依据文档设计接口参数,获取响应,解析响应,校验结果,判断测试是否通过。
(2)request内容:
①封装了各种请求类型,get、post等;
②以关键字参数的方式,封装了各种请求参数,params、data、headers、token等;
③封装了响应内容,status_code、json()、cookies、url等;
④session会话对象,可以跨请求。
13、ui自动化,如何做集群?
SeleniumGrid。
14、移动端UI自动化,经常会自动安装2个程序,你知道那两个程序是什么东西不?
守护精灵,和Python并发编程中的daemon原理一样,父进程/父线程的代码执行完毕,它就终止,要写在start方法前面。
另外,要找到配置文件,注释掉两行代码。
15、说5个以上Linux命令。
16、介绍一下你在这个项目中是如何使用Jenkins的。
,说了基本操作,比如定时构建执行代码。
17、说说你对敏捷模式的认识。
小步快跑,拥抱变化。
测试中,可以通过行为驱动测试,有个框架lettuce可以用。
18、了解过Docker不?
了解,没用过。
然后说了下对Docker大概的认识、优势。
一、json和字典dict的区别
首先python里面的基础数据类型有:
int、str、float、list、bool、tuple、dict、set这几种类型,里面没json这种数据类型。
JSON(是一种轻量级的数据交换格式。
它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得JSON成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
由于你的代码是python写的(也有可能是php,java,c,ruby等语言),但是后端接口是java写的(也有可能是其它语言),不同的语言数据类型是不一样的(就好比中国的语言和美国的语言数据类型也不一样,中国的一般说一只羊,一头牛,美国都是a/an这种单位),所以就导致你提交的数据,别的开发语言无法识别,这就需要规范传输的数据(传输的数据都是一个字符串),大家都遵循一个规范,按一个标准的格式去传输,于是就有就json这种国际化规范的数据类型。
json本质上还是字符串,只是按key:
value这种键值对的格式来的字符串b='
{"
a"
:
1,
"
b"
2,
c"
true}'
二、测试的数据放在哪?
1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如ini)
2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成
3.对于一个接口有多组测试的参数,可以参数化,数据放yaml,text,json,excel都可以
4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理
5.对于邮箱配置的一些参数,可以用ini配置文件
6.对于全部是独立的接口项目,可以用数据驱动方式,用excel/csv管理测试的接口数据
7.对于少量的静态数据,比如一个接口的测试数据,也就2-3组,可以写到py脚本的开头,十年八年都不会变更的
三、什么是数据驱动,如何参数化?
四、下个接口请求参数依赖上个接口的返回数据
这个很容易,不同的接口封装成不同的函数或方法,需要的数据return出来,用一个中间变量a去接受,后面的接口传a就可以了
可以参考登录的cookie或token
五、依赖于登录的接口如何处理
参考requests的方法
六、依赖第三方的接口如何处理
这个需要自己去搭建一个mock服务,模拟接口返回数据
mock服务搭建需要自己能够熟练掌握,面试会问你具体如何搭建,如何模拟返回的数据,是用的什么格式,如何请求的
七、不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
此题考的是造数据的能力,接口的请求数据,很多都是需要依赖前面一个状态的
比如工作流这种,流向不同的人状态不一样,操作权限不一样,测试的时候,每种状态都要测到,就需要自己会造数据了。
平常手工测试造数据,直接在数据库改字段状态。
那么自动化也是一样,造数据可以用python连数据库了,做增删改查的操作
测试用例前置操作,setUp做数据准备
后置操作,tearDown做数据清理
八.接口产生的垃圾数据如何清理
跟上面一样,造数据和数据清理,需用python连数据库了,做增删改查的操作
九.一个订单的几种状态如何全部测到,如:
未处理,处理中,处理失败,处理成功
跟上面一样,也是考察造数据,修改数据的状态
十、get和post的区别
十一、post请求的四种参数形式是什么
application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
十一、公司有用到第三方服务,出了问题,打电话给第三方,第三方不承认,这时候日志又显示不到错误,应该怎么处理
1、单独调用第三方服务,查看返回结果;
2、引入mock机制,假如正常返回的情况下,测试我们的系统是否存在问题;
3、建议开发增加日志,详细记录调用第三方接口的过程,记录调用前接口入参,返参等信息;
十二、接口自动化中的关联怎么处理?
将请求返回的结果反射到类属性中,使用setattr()函数,下个请求调用这个类
十三、自动化测试怎么校验结果?
使用断言,预期结果值和实际结果值进行对比;
十四、自动化使用的测试框架是什么?
简述自动化框架的设计、维护
1、自动化使用的测试框架:
语言:
python
测试框架:
unittest(assertEqual,assertTure,assertFalse)
接口调用:
requests(API非常简洁)
数据驱动:
ddt(装饰器:
ddt类,unpack测试方法装饰器解包时候,data测试方法装饰器,可迭代的数据类型)
注:
普通用户,管理用户,数据库,配置文件---基础数据
数据管理:
openpyxl(excel,CSV,json,yaml,txt)
数据库交互:
pymysql---根据数据库选择相应的第三方模块来完成
数据格式的转换:
eval,json
日志处理:
logging---清晰的执行过程,快速定位问题
持续集成:
Jenkins(通过插件HTMLPublisher/git/EmailExtension)进行自动构建,生成HTML,发送邮件
2、自动化框架的设计、维护:
1、数据与代码分离,(数据驱动)==数据驱动框架==
例如:
参数不一样,响应不一样
2、结构分层(数据层,用例层,逻辑性)
逻辑层:
公用的方法,封装起来,避免用例层的代码冗余
数据层:
例如,设计Excel,excel读取,参数化替换等
用例层:
存放测试用例
十五、在接口自动化测试中都用到了哪些包:
pymysql:
连接数据库
ddt:
requests:
urllib:
xlrd:
xlwt:
xlutils:
十六、根据什么来做断言?
1、协议状态码:
200,404,503
2、业务状态码:
status:
0
3、业务数据
十七、具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到jenkins,配置定时执行,生成html报表,查看测试通过率,查看接口的功能
每次发版时,进行回归测试,新功能开发未提测前
十八、做好测试计划的关键是什么?
明确测试目的,增强测试计划的实用性,保证测试用例的实用性和覆盖率,完全需求文档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等
十九、super是干嘛用的?
super用于继承父类的方法、属性。
super是新式类中才有的,所以Python2中使用时,要在类名的参数中写Object。
使用super可以提高代码的复用性、可维护性。
父类:
classCar():
def__init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
def.....
classElectricCar(Car):
--------初始化父类的属性
super().__init__(make,model,year):
def....
子类就可以使用父类的属性
二十、L=[1,2,3,11,2,5,3,2,5,3],用一行代码得出[11,1,2,3,5]
二十一、L=[1,2,3,4,5],L[10:
空列表[]
二十二、list=[1,2,3,4],如何得出'
1234'
list=[1,2,3,4]
list2='
for
i
in
list:
list2=list2+str(i)
print(list2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 自动化测试面试题目 自动化 测试 面试 题目