自我总结--测试面试常见问题(一)

1.java与python的区别:

java、python都是开源、面向对象的高级计算机语言;java是编译型、python是解释型;python中的变量或者引用并没有具体的数据类型声明,而java必须声明具体的数据类型,从而python中的多态没有java的多态那么突出;两种语言应用的领域不同(java应用于手机app较为突出,python应用于AI大数据较为突出)

2.封装的概念:

封装是程序设计语言中的三大基本特征之一;通过某种修饰符或者某种形式进行将对数据描述以及对数据的操作所设置的权限访问控制,以避免数据的乱调

3.元组和列表的区别:

元组、列表都是python中的数据类型
元组声明时使用小括号,列表声明时使用中括号
元组中元素不可改,长度不可变;列表可变
元组与列表之间可以实现相互转换

4.super关键字:

表示的是父类对象的引用;使用的格式可以不传任何参数,也可以传入当前子类的类名以及self参数super()/super(类名,self);在python子类继承父类则可以直接通过当前类中的self参数进行调用,但是__init__方法不能够被继承,所以如果父类显式声明带参的初始化方法,则子类必须显式调用,此时必须通过使用super语句完成

5.进程与线程的区别:

进程是程序运行的实例,主要是实现程序资源的分配
线程是进程的实例,主要是实现执行操作
进程与线程之间的包含00关系(一个进程至少包含一个线程)
进程会开辟独立的内存空间,线程所有的资源都是共享的=
进程是重量级的,线程是轻量级的

6.你所用的模块:

os、time、openpyxl、shutil、sys、pymysql、datetime、xlrd、xlrt、threading、multiprocessing.......注意:后期会将自动化的框架以及模块

7.在工作中造测试数据,为什么要造测试数据,用来干什么的?怎么管理的?

设计测试用例:高效:使用一条用例进行覆盖多条测试路径
1)一条用例或者工作中不同的用例应有不同的数据类型;(一般项目拿过来都是正常路径的数据,所以我们还需要相关的异常路径的数据)
2)部分功能不可用,可以通过后台的处理方式进行对数据添加,以实现相关的测试
A.分析出数据量、数据用途(内部测试、对外公测、上线)、数据来源(测试设计、开发设计、产品提供)
B.如果是数据量小的话直接后台使用sql语句完成即可;如果是数据量大的话:通过脚本进行实现(数据的生成方式、数据的存储地址、数据的内部结构)
C.使用合适的语言进行设计相关的脚本 D.最后校验数据并优化

8.什么是selenium?

selenium是一个web自动化测试框架,可以实现跨平台、跨语言、跨浏览器;可以扩展说明(selenium的版本发展以及selenium的家族(selenium2.0=selenium1.0+webdriver))

9.python中的切片是啥?

截取;表示形式为[初始索引:结束索引:步进]

10.selenium中元素定位的方式:

a.可以通过多种方法定位一个元素(find_element_by_操作的方式)(id、name、class、tag_name、link_text、partial_link_text、xpath(精确定位、模糊定位)、css)
b.可以通过多种方法定位一组元素
c.可以通过js、jquery脚本定位

11.统计列表中正数、负数的个数的思路?

思路:1)遍历列表 2)判断遍历列表中的每个值(判断类型、判断大于0,小于0) 3)声明一个计数器变量进行统计

12.列表中的元素进行随机打乱[1,2,3,4,5]

import random
list1=[1,2,3,4,5]
random.shuffle(list1)
print(list1)
说明:shuffle函数是在原有列表的空间上进行随机打乱元素

13.用python语言进行格式表示"0001"

number=11
print("%04d"%number)

14.如何判断元素是否存在?

1.如果不存在则会抛出一个异常:NoSuchElementException
2.可以通过find_element获取一组元素;进行求一组元素对象的长度
3.使用显式等待webdriverwait模块中的结合预置条件expected_conditions中的presence_of_element_located方法

15.异常等价于错误?两者区别?

异常:exception:在python中,所有的异常类都是继承于BaseException;在正常逻辑实现的过程中存在某些特殊情况、特殊例外不满足的时候则会抛出异常信息(考虑不完全);在程序中异常是可以处理的,使用下面语句块进行捕获
try:
可能抛异常的语句
except:
异常处理的语句块
错误:在设计程序代码逻辑人为所犯的错(完全不符合需求);错误不是处理而是需要修改;

16.yaml文件中元组数据类型的表示形式?

pyyaml模块具有自身的数据表示类型,并不是支持python中的所有基础类型;但是可以通过自身进行构造
!!python/tuple 需要声明的元组元素以列表的形式表示 例如:!!python/tuple [2,3,3]

17.接口测试用例的要素?(固定模式,是根据个人具体情况具体设计)

需要分析接口的构成、接口的类型(接口业务上的类型、接口请求方式的类型、接口设计实现的类型)(根据所分析的接口信息来进行设计需要哪些要素);
是否携带参数、参数的类型、参数的方式(业务参数数据)、请求所需要携带的参数数据(headers、cookie)
分析参数是否存在依赖(请求中的数据依赖、响应中的数据依赖)
分析接口中预期结果值,并设计结果值如何与实际断言;

18.以前做接口自动化测试的过程?

从接口需求分析文档中获取:适不适合接口自动化、接口测试类型、接口自动化当前接口所适用的工具、框架
制定当前所选取的框架或者工具所适用的测试用例模板(考虑数据与用例的存储方式即数据的分离方式)
选取框架(是已有的框架,还是自己针对已有的框架进行封装,根据已有的框架进行二次开发)(已有框架封装就是我们设计的过程思路):requests模块
1.先进行请求方式封装------>封装测试
2.封装读取测试用例的操作------->封装测试
3.封装测试用例excel文件中数据分离的文件操作------->封装测试
4.封装数据依赖部分------>封装测试
5.封装使用unittest框架部分------>封装测试
6.封装自动发送邮件报告部分-----> 封装测试
使用jenkins持续集成

19.说明正则中的.和.?的区别
abcdeafghijka1234556---------------->假设需要取出abcdea的话则需要使用最小匹配,使用a(.*?)a
.表示的是贪婪匹配,会匹配到最后一个,所有满足a(.)a此种表示形式的整个字符串
20.appium如何实现与模拟器或者设备的连接?

appium-server端会发送一个bootstrap.jar包到模拟器或者设备然后安装appium-settings(模拟器或者设备中存在一个守护线程、守护精灵)(请详参appium的原理)

今天就先总结这么多哈,小编也在努力的前进着,每日更新总结,祝愿测试干饭人们找到心仪的工作哦!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值