ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:21.68KB ,
资源ID:6732088      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6732088.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Python 自动化测试面试题目.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Python 自动化测试面试题目.docx

1、Python 自动化测试面试题目Python 自动化测试面试题目1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。答:super 用于继承父类的方法、属性。super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。Python3 默认是新式类,不用写,直接可用。使用 super 可以提高代码的复用性、可维护性。修改代码时,只需修改一处。代码举例:1.class baseClass:2.3. def test1(self, num):4.5. print(num)6.7. 8.9.cl

2、ass sonClass(baseClass):10.11. def test2(self):12.13. super().test1(num)14.15. 16.17.son = sonClass()18.19.son.test1(11)20.2、阅读以下代码,推导最后结果:1.def add(n, i):2.3. return n+i4.5. 6.7.def test():8.9. for i in range(4):10.11. yield i12.13. 14.15.g = test()16.17. 18.19.for n in 1, 10, 5:20.21. g = (add(n,

3、i) for i in g)22.23. 24.25.print(list(g) # 结果是 15, 16, 17, 1826.答:所有的结果都是生成器表达式,不调用它,不从里面取值,就不干活。附上我的推导过程:1.n = 12.3.g = (add(n,i) for i in test()4.5.# print(list(g) # 1, 2, 3, 46.7.8.n = 109.10.g = (add(n,i) for i in (add(n,i) for i in test()11.12.# print(list(g) # 20, 21, 22, 2313.14.15.n = 516.17

4、.g = (add(n,i) for i in (add(n,i) for i in (add(n,i) for i in test()18.19.g = (add(n,i) for i in (add(n,i) for i in (5,6,7,8)20.21.g = (add(n,i) for i in (10,11,12,13)22.23.24.g = (15,16,17,18)25.26.print(list(g) # 15, 16, 17, 1827.3、快速编写前端 HTML、JavaScript、Vue 代码。答:HTML、JavaScript 代码:1.2.3.4.5.6.7.

5、8.9.10.11.12.13. xxx公司14.15. xxx公司是一家.16.17. 18.19. 20.21. a22.23. 24.25. 26.27. 28.29.30.31.32.33.34.35. var title = document.getElementById(title);36.37. title.onclick = function() 38.39. alert(我爱xxx公司,祝我面试成功);40.41. 42.43.44.Vue 代码编写:1.import Vue from vue;2.3.new Vue(4.5. el : #mybox,6.7. data :

6、8.9. a : 10010.11. ,12.13. methods : 14.15. add : function()16.17. this.a +;18.19. 20.21. 22.23.);24.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,L10:的结果是?答:空列表(当时有点紧张,一直在“空列表”和“索引超出范围”两个答案之间徘徊)。6、L = 1, 2, 3, 5, 6,如何得出 12356?答:注意,个人觉得这个题有坑,列表的元素不是字符串,所

7、以不能.join(L)。以下是过程:1.s = 2.3.for i in L:4.5. s = s + str(i)6.7. 8.9.print(s) # 1235610.11.print(type(s) # 12.7、列表和字典有什么区别?答:一般都是问列表和元组有什么不同。(1)获取元素的方式不同。列表通过索引值获取,字典通过键获取。(2)数据结构和算法不同。字典是hash算法,搜索的速度特别快。(3)占用的内存不同。8、如何结束一个进程?答:(1)调用terminate方法。(2)使用subProcess模块的Popen方法。使用简单,具体用法,这里不展开。9、进程、线程有什么区别?什么

8、情况下用进程?什么情况下用线程?答:(1)区别: 地址空间和其它资源(如打开文件):进程之间相互独立,同一进程的各线程之间共享。某进程内的线程在其它进程不可见。 通信:进程间通信 IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信需要进程同步和互斥手段的辅助,以保证数据的一致性。 调度和切换:线程上下文切换比进程上下文切换要快得多。 在多线程操作系统中,进程不是一个可执行的实体。(2)使用场景:同时操作一个对象的时候,比如操作的是一个全局变量,我用线程,因为全局变量是所有线程共享的。10、什么是ORM?为什么要用ORM?不用ORM会带来什么影响?答:ORM框架可以将类和数据表进行对应

9、,只需要通过类和对象就可以对数据表进行操作。通过类和对象操作对应的数据表,类的静态属性名和数据表的字段名一一对应,不需要写 SQL 语句。ORM另外一个作用,是根据设计的类生成数据库中的表。11、写一段代码,ping 一个 ip地址,并返回成功、失败的信息。答:使用 subProcess 模块的 Popen 方法(使用简单,具体用法,这里不展开)。12、说说接口测试的流程,介绍一下 request 有哪些内容。答:(1)流程:获取接口文档,依据文档设计接口参数,获取响应,解析响应,校验结果,判断测试是否通过。(2)request 内容: 封装了各种请求类型,get、post 等; 以关键字参数

10、的方式,封装了各种请求参数,params、data、headers、token 等; 封装了响应内容,status_code、json()、cookies、url 等; session 会话对象,可以跨请求。13、ui自动化,如何做集群?答:Selenium Grid。14、移动端 UI 自动化,经常会自动安装 2 个程序,你知道那两个程序是什么东西不?答:守护精灵,和 Python 并发编程中的 daemon 原理一样,父进程/父线程的代码执行完毕,它就终止,要写在 start 方法前面。另外,要找到配置文件,注释掉两行代码。15、说5个以上 Linux 命令。答:16、介绍一下你在这个项目

11、中是如何使用 Jenkins 的。答:,说了基本操作,比如定时构建执行代码。17、说说你对敏捷模式的认识。答:小步快跑,拥抱变化。测试中,可以通过行为驱动测试,有个框架 lettuce 可以用。18、了解过 Docker 不?答:了解,没用过。然后说了下对 Docker 大概的认识、优势。一、json和字典dict的区别首先python里面的基础数据类型有:int、str、 float、list、bool、tuple、dict、set这几种类型,里面没json这种数据类型。JSON( 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全

12、独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。由于你的代码是python写的(也有可能是php,java,c,ruby等语言),但是后端接口是java写的(也有可能是其它语言),不同的语言数据类型是不一样的(就好比中国的语言和美国的语言数据类型也不一样,中国的一般说一只羊,一头牛,美国都是 a /an这种单位),所以就导致你提交的数据,别的开发语言无法识别,这就需要规范传输的数据(传输的数据都是一个字符串),大家都遵循一个规范,按一个标准的格式去传输,于是就有就jso

13、n这种国际化规范的数据类型。json本质上还是字符串,只是按key:value这种键值对的格式来的字符串b = a: 1,b: 2,c: true二、测试的数据放在哪?1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如ini)2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成3.对于一个接口有多组测试的参数,可以参数化,数据放yaml,text,json,excel都可以4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理5.对于邮箱配置的一些参数,可以用ini配置文件6.对于

14、全部是独立的接口项目,可以用数据驱动方式,用excel/csv管理测试的接口数据7.对于少量的静态数据,比如一个接口的测试数据,也就2-3组,可以写到py脚本的开头,十年八年都不会变更的三、什么是数据驱动,如何参数化?四、下个接口请求参数依赖上个接口的返回数据这个很容易,不同的接口封装成不同的函数或方法,需要的数据return出来,用一个中间变量a去接受,后面的接口传a就可以了可以参考登录的cookie或token五、依赖于登录的接口如何处理参考requests的方法六、依赖第三方的接口如何处理这个需要自己去搭建一个mock服务,模拟接口返回数据mock服务搭建需要自己能够熟练掌握,面试会问你

15、具体如何搭建 ,如何模拟返回的数据,是用的什么格式,如何请求的七、不可逆的操作,如何处理,比如删除一个订单这种接口如何测试此题考的是造数据的能力,接口的请求数据,很多都是需要依赖前面一个状态的比如工作流这种,流向不同的人状态不一样,操作权限不一样,测试的时候,每种状态都要测到,就需要自己会造数据了。平常手工测试造数据,直接在数据库改字段状态。那么自动化也是一样,造数据可以用python连数据库了,做增删改查的操作测试用例前置操作,setUp做数据准备后置操作,tearDown做数据清理八.接口产生的垃圾数据如何清理跟上面一样,造数据和数据清理,需用python连数据库了,做增删改查的操作测试用

16、例前置操作,setUp做数据准备后置操作,tearDown做数据清理九.一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成功跟上面一样,也是考察造数据,修改数据的状态十、get和post的区别十一、post请求的四种参数形式是什么application/x-www-form-urlencodedmultipart/form-dataapplication/jsontext/xml十一、公司有用到第三方服务,出了问题,打电话给第三方,第三方不承认,这时候日志又显示不到错误,应该怎么处理1、单独调用第三方服务,查看返回结果;2、引入mock机制,假如正常返回的情况下,测试我们的系

17、统是否存在问题;3、建议开发增加日志,详细记录调用第三方接口的过程,记录调用前接口入参,返参等信息;十二、接口自动化中的关联怎么处理?将请求返回的结果反射到类属性中,使用setattr()函数,下个请求调用这个类十三、自动化测试怎么校验结果?使用断言,预期结果值和实际结果值进行对比;十四、自动化使用的测试框架是什么?简述自动化框架的设计、维护1、自动化使用的测试框架:语言:python测试框架:unittest(assertEqual,assertTure,assertFalse)接口调用:requests(API非常简洁)数据驱动:ddt(装饰器:ddt类,unpack测试方法装饰器解包时候

18、,data测试方法装饰器,可迭代的数据类型)注:普通用户,管理用户,数据库,配置文件-基础数据数据管理:openpyxl(excel,CSV,json,yaml,txt)数据库交互:pymysql -根据数据库选择相应的第三方模块来完成数据格式的转换:eval,json日志处理:logging -清晰的执行过程,快速定位问题持续集成:Jenkins(通过插件HTML Publisher/git/Email Extension)进行自动构建,生成HTML,发送邮件2、自动化框架的设计、维护:1、数据与代码分离,(数据驱动)=数据驱动框架=例如:参数不一样,响应不一样2、结构分层(数据层,用例层,

19、逻辑性)逻辑层:公用的方法,封装起来,避免用例层的代码冗余数据层:例如,设计Excel,excel读取,参数化替换等用例层:存放测试用例十五、在接口自动化测试中都用到了哪些包:pymysql:连接数据库ddt:requests:urllib:xlrd:xlwt:xlutils:十六、根据什么来做断言?1、协议状态码: 200,404,5032、业务状态码:status:03、业务数据十七、具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到jenkins,配置定时执行,生成html报表,查看测试通过率,查看接口的功能每次

20、发版时,进行回归测试,新功能开发未提测前十八、做好测试计划的关键是什么?明确测试目的,增强测试计划的实用性,保证测试用例的实用性和覆盖率,完全需求文档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等十九、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。super 用于继承父类的方法、属性。super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。Python3 默认是新式类,不用写,直接可用。使用 super 可以提高代码的复用性、可维护性。修改代码时,只需修改一处。父类:c

21、lass Car():def _init_(self,make,model,year):self.make=makeself.model=modelself.year=yeardef .class ElectricCar(Car):def _init_(self,make,model,year):-初始化父类的属性super()._init_(make,model,year):def .子类就可以使用父类的属性二十、L = 1, 2, 3, 11, 2, 5, 3, 2, 5, 3,用一行代码得出 11, 1, 2, 3, 5答:list(set(L)二十一、L = 1, 2, 3, 4, 5,L10:的结果是?答:空列表二十二、list= 1, 2, 3, 4,如何得出 1234?list=1,2,3,4list2=foriinlist:list2=list2+str(i)print(list2)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2