测试面试题
1、字典排序使用到的函数具体是哪个?举例说明
字典使用到的函数是sorted()
举例:
#根据key排序 dict1={'name':'shuaige','age':'18','salary':'1000'} print(dict(sorted(dict1.item(),key=lambda item:item[0]))) #根据value排序 dict1={'name':'shuaige','age':'18','salary':'1000'} print(dict(sorted(dict1.item(),key=lambda item:item[1])))
2、字符串格式化使用到的关键字是哪个,举例说明
字符串使用的关键字是format
age=21 name=贾超 salary=1235.89 print('我的年龄:{age},我的名字{name},我的薪资{salary}'.format(age=age,name=name,salary=salary))
3、列表中append()与insert()的区别是什么?举例说明
append()是将元素添加到最后一位 ,insert()是按照索引进行添加
lists=[21,'贾超',True,1235.89,21] lists.append('学习') print(lists) lists=[21,'贾超',True,1235.89,21] lists.insert(0,'go')
4、列表与元组的区别是什么
1、列表可变 元祖不可变
2、列表书写方式为[],元祖为()
3、元组内只有一元素是 应在该元素后加,
5、查看一个对象的类型关键字是什么?查看对象的内存地址关键字是什么
查看一个对象的类型关键字是type,查看对象的内存地址关键字为ID
6、怎么获取字符串的索引信息
获取字符串的索引信息是index
7、举例说明列表推导式的使用
list=[x for x in range(50)]
print(list)
8、当元组只有一个对象的时候,需要注意什么?
当元祖只有一个对象时,需要注意的是在该元素后面加,
9、怎么理解函数的返回值?
return可以返回到函数 也可以返回到 具体的元素 当我们调用的时候 就可以进行调用 返回的函数
10、怎么理解函数的动态参数
def func(*args): print(args) func(1,2,3)
11、字符串与列表之间的互相转换
str1=("asidhaiowsdo") liststr1=str1.split(',') print(liststr1) list1=["a","b","c","d"] str1=''.join(list1) print(str1)
12、字符串的替换使用到的方法是?
str1="i love you" a=str1.replace('you','baby') print(a)
13、怎么理解is,in,==
is为内存地址一样 就可以
in是包含 A里包含B就可以
==是A=B
14、使用os库编写一个文件的路径拼接
import os def base_dir(): return os.path.dirname(os.path.dirname(__file__)) #将当前路径与上一级目录进行拼接
15、怎么理解序列化与反序列化
变量从内存中变成可以存储或传输的过程称之为序列化
变量内容从序列化的对象重新读取到内存中 叫反序列化
16、举例说明文件的a,w,r的模式
a是可读可写 (文件不存在就创建,存在就添加)
w是写 (文件不存在就创建,存在就覆盖)
r是只读
17、使用with上下文的模式来处理文件
with open('testcase','w' ) as f: f.write('python')
18、怎么理解编码与解码
编码就是把要传递的信息按照一定的规则进行组织,解码就是把收到的信息按照一定的规则进行解析
即编码unicode→str,解码str→unicode
19、使用datetime获取当前的时间
import datetime print(datetime.datetime.today())
20、使用time等待5秒的时间
import time as t t.sleep(5)
21、怎么理解装饰器
装饰器我个人理解成是起到拦截的的作用,比如我在登录后需要查看订单系统,这时候我在查看订单系统前添加一个装饰器@login,这样就会优先进行登录的匹对,如果登录配对成功后 才可以进行接下来的操作 超看订单系统
22、怎么理解局部变量与全局变量
局部变量是定义在函数内部的
全局变量的默认作用域是整个程序,就是可以在函数外部使用,同时也可以被函数进行调用
23、Java的继承与Python的继承有什么区别
java的继承方式是单继承
python的继承方式是多继承 即1个类可以集成其他三个类
24、如果子类重写了父类的方法,那么实例化子类后,调用重写后的方法,调用的是子类的方法还是父类的方法?
调用之后的方法是子类的方法,如果没有调用的话 则默认使用父类的方法
API知识:
1、HTTP的完整请求流程
1、客户端像服务端发送tcpip建立链接
2、客户端像服务端发送请求
3、服务端收到请求发送相应数据
4、关闭tcp ip链接
2、怎么理解get和post请求
get请求需要写到parme 是获取数据 或者查看数据
post请求主要用于是添加产品 新增产品 需要以json的数据形式写进去
3、在postman中写断言的地方为?
tests里面
4、怎么理解postman里面的collections?
postman里面的集合就是一个线程组,用于处理接口关联之间的执行,
5、动态参数在postman里面的解决思路,请使用步骤的方式描述出来
1、在tests里定义一个全局变量 将变量储存在里面
2、在其他的地方如果需要调用这个变量 在postman当中就{{}}里面写ID进行调用
6、在postman中,怎么调用变量
{{}}
7、接口断言需要是那方面
协议状态码 业务状态码 相应数据
8、怎么理解协议状态码:404
1、请求的资源不存在rul
9、如果一个接口访问时400,排查思路时什么?
1、检查自己请求部分是否正确(请求头,请求参数)
10、怎么理解同步通信
客户端像服务端发送请求,服务端必须响应请求,
11、怎么理解异步通信
多了个中间件 比如nginx和rabbitMQ
12、怎么理解cookie,session,token
cookies是针对每一个网站的信息,每一个网站只对应一个且cookies文件是保存在本地客户端的,每次访问相应网站的时候浏览器就会查找cookies 可以进行接下来的操作
session是针对每一个用户而言,只有客户访问,程序就会为这个客户增加一个session,session主要保存的时用户登录的信息,操作信息等,这个session会在用户访问结束后自动消失
13、请按步骤的方式描述session的请求流程
举例说明,当我们输入用户名和密码进行登录时候 会生成一个session,这个session是储存在服务器上的,如果我们想要进行操作 查看个人主页 这时候服务端就会就会对session进行匹配 只有匹配成功后才
可以进行接下来的操作,要注意的是这个session是具有时效性的,如果长时间没有进行操作或退出登录 这个session就会消失
14、如果发送请求,协议状态码返回500的错误,怎么解决?
1、可能是请求头没有填写或者填写错误
15、怎么理解协议状态码和业务状态码?
协议状态码是HTTP协议的一部分 用于表示HTTP常用状态
业务状态码一般是开发自己定义的 ,是关于业务描述的
16、按步骤的方式描述token的请求流程
17、按步骤的方式描述cookie的请求流程
18、怎么理解Requets里面的post请求方法的data和json
19、怎么理解序列化和反序列化
20、在Python中,接口测试的库是那个?
21、在get请求里面,如果有请求参数,使用的参数是那个的?params http://localhost:5000/login?name=wuya&age=18
22、postman里面在哪里填写请求参数
23、参数之间的关联在代码里面怎么解决?
24、怎么理解session会话对象
测试基础理论:
1、bug完整的生命周期
2、编写测试用例的要素是什么?
3、怎么理解黑合测试,白盒测试
4、测试按阶段划分,主要分为那几个阶段
5、怎么理解等价类和边界值
6、请描述一个完整的测试流程
7、列表常用的测试用例设计方法,请结合具体的产品说明它的使用
8、测试用例的要素有哪些?
9、请描述一下你理解的测试流程
UI自动化测试:
1、常用的元素定位有那几种方法,请举例说明
2、单个元素定位与多个元素定位的区别是什么?
3、如果是iFrame的框架,如何来定位里面的元素属性的对象
4、怎么理解页面对象设计模式
5、怎么理解显式等待和隐式等待
6、在测试中遇到多窗口,具体怎么解决,请描述具体的步骤和编写具体的案例代码
7、你写了多少个UI自动化测试用例?
8、详细的描述下你理解的UI自动化测试流程?
9、你在UI自动化测试中具体使用到了哪些测试技术和工具
10、你编写的UI自动化测试用例你发现过bug嘛?
11、测试报告你是怎么生成的?
单元测试框架:
1、unittest与pytest的框架
2、unittest的常用组件有哪些
3、unittest中怎么理解测试固件
4、怎么理解setUp(),tearDown()与类测试固件的测试
5、在unittest测试框架中,加载所有的测试模块使用到的方法是什么?具体参数是什么?
6、在unittest中使用那个库来生成对应的测试报告
7、一个完整的测试用例包含哪些步骤
8、怎么理解参数化
性能测试:
1、响应时间你是怎么理解的?
2、怎么区分负载测试和压力测试
3、你是怎么做稳定性测试的?
4、常用的性能测试工具有哪些?
5、说出JMeter测试工具中聚合报告中有哪些结果信息
6、在JMeter中,如果需要监控服务器的CPU和内存的资源,你具体是怎么做的
7、说下你理解的性能测试流程
8、性能测试结果如果不满足预期的目标,你会怎么办?
9、性能测试中性能的目标你是怎么定,说出具体的依据
综合考核:
1、HTTP协议的组成部分?
2、postman中断言是在哪里断言?断言哪三部分?
3、postman的请求参数在哪里?
4、一个完整的测试流程?
5、冒烟测试是什么?
6、开发要转测的依据是什么?
7、如果开发那边代码写不完,超过预期时间你怎么办?
8、对淘宝购物车有哪些测试点?用等价类边界值如何划分?
9、ui测试定位元素有?对于多元素怎么定位?
10、ui自动化测试怎么进行接口测试?
11、接口测试需要携带哪些参数?
12、linux有哪些常用的命令?查看文件是那个命令?
13、比如mysql中对2021年的前6个月的工资总和,用到那些命令?
14、常用的请求方法?get和post方法区别?
15、常用的业务状态码?
16、元组和字典的区别?
17、字典如何输出key的值?如何输出value的值?