python-interview
1.列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]。
list=[1,2,3,4,5]
def square(x):
return x**2 #计算平方数
res=map(square,list)
res=[i for i in res if i>10]
print(res)
2.Python开发中字典和 json的区别?
- 字典是一种数据结构,而json是一种数据格式,是纯字符串。可以被解析成Python的dict或者其他形式。
- 字典可以使用单引号,也可以使用双引号;json的格式要求必须且只能使用双引号(值如果是数字可以不用加双引号)。
- 字典的key不可以重复;json的key可以是有序、重复的;
3.测试的数据你放在哪?
1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如ini)
2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成
3.对于一个接口有多组测试的参数,可以参数化,数据放yaml,text,json,excel都可以
4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理
5.对于邮箱配置的一些参数,可以用ini配置文件
6.对于全部是独立的接口项目,可以用数据驱动方式,用excel/csv管理测试的接口数据
7.对于少量的静态数据,比如一个接口的测试数据,也就2-3组,可以写到py脚本的开头,十年八年都不会变更的
总之不同的测试数据,可以用不同的文件管理
4.什么是数据驱动,如何参数化?
参数化的思想是代码用例写好了后,不需要改代码,只需维护测试数据就可以了,并且根据不同的测试数据生成多个用例。
5.下个接口请求参数依赖上个接口的返回数据
这个很容易,不同的接口封装成不同的函数或方法,需要的数据return出来,用一个中间变量a去接受,后面的接口传a就可以了
参考这篇【python接口自动化26-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)】
6.依赖于登录的接口如何处理
登录接口依赖token的,可以先登录后,token存到一个yaml或者json,或者ini的配置文件里面,后面所有的请求去拿这个数据就可以全局使用了
参考之前分享的一篇python接口自动化24-有token的接口项目使用unittest框架设计
如果是cookies的参数,可以用session自动关联
s=requests.session()
后面请求用s.get()和s.post()就可以自动关联cookies了。
7.find和index的区别是什么?
8.如何去重?
9.如何使字符串倒序排列?
10.post和put请求的区别是什么?
11.联合查询?