栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

测试工程师的技术面试题整理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试工程师的技术面试题整理


1.Linux 直接查看某个进程的占用端口号

  • 1)ps -aux|grep [name]

查出pid

  • 2)Netstat -nap|grep [pid]

2.python的数据类型有哪些?

int 、bool、str、list、元祖tuple、字典dict、集合set

3.python字典、列表、集合、元素有什么区别?

  • 列表:有序、可读写、元素可修改、列表用[]、可通过下标访问
  • 元祖:有序、只读、元素不可修改、元祖用()、可通过下标访问,只有一个数据时,在数据后加逗号
  • 集合:无序、可读写、元素不可修改、不能通过下标访问,用{}表示
  • 字典:无序、可读写、元素可修改、能通过下标访问、用{}表示

4.web自动化的三种等待方式

  • 强制等待sleep()
  • 隐性等待implicitly_wait(x) x秒内查找一个元素,找到马上执行下一步,只能等待,超过x秒抛出异常
  • 显性等待

WebDriverWait(driver,等待时长,轮循周期).until()/until_not()

明确等到某个条件满足后,再去执行下一步

5.冒泡排序

a=[10,83,21,14,6,7,1,52,9,8]
for i in range(len(a)):
    temp=0
    for j in range(len(a)-1):
       if a[i]>a[j]:
            temp=a[i]
            a[i]=a[j]
            a[j]=temp
print(a)

6.adb 命令(app测试)

  • adb shell
  • adb logcat 查看日志
  • adb logcat > ./logcat.log 写入本地文件
  • adb logcat -v time > ./logcat.log
  • adb logcat -c 清除旧日志
  • 查看系统资源adb shell top |grep [包名]
  • 查看CPU信息 adb shell dumpsys cpuinfo
  • 查看内存信息 adb shell dumpsys meminfo
  • adb shell push [本地路径] [本地路径]
  • adb shell pull [设备路径] [本地路径]
  • adb install apkpath 安装
  • adb uninstall packagename 卸载
  • adb shell pm list package 查看所有包名
  • adb shell pm list package -3 查看第三方的包名
  • adb shell pm list package -s 查看系统的包名
  • adb shell dumpsys activity | findstr [包名]|findstr LUNCHER 查找启动页

****win系统用findstr mac系统用grep

7.python对列表li=[1,2,3,5,5,5,5,6]去重

1)set集合去重

列表转换成集合>集合再转换成列表

**set是无序的,如何保持原有的顺序

sort(key=列表原来的顺序)

old_li=[1,2,3,5,5,5,5]
s=set(old_li)
new_li=list(s)
print("转换成集合去重",new_li)
new_li.sort(key=old_li.index)
print("保持old_li原有的顺序",new_li)

2)遍历

old_li2=[8,2,3,5,5,5,5]
new_li2=[]
for i in old_li2:
    if i not in new_li2:
        new_li2.append(i)
print("去重之后的列表",new_li2)

3)通过字典key的唯一性

old_li3=[8,2,3,5,5,5,5]
#把列表的值作为字典的key,key的唯一性
new_dict={}.fromkeys(old_li3,"1")
print("新字典",new_dict)
new_li3=list(new_dict)
print("去重之后的列表",new_li3)

8.用python写一个单例模式,并说明应用场景

设计思路:保证一个类生成一个实例对象

作用:保证系统中一个类只有一个实例,实例对象比较容易被外界访问

控制实例的个数并节约系统资源

应用场景:回收站,任务管理器,配置文件,网站计数器

9.什么是装饰器及应用场景

装饰器原理:闭包

作用:在不改变函数原有功能的基础上增加额外的功能,代码复用性的特点应用到了极致

闭包:1.函数嵌套函数2.外部函数返回内部函数的名字3.内部函数可以使用外部函数的参数

例如:写一个计时器

import time
def timer(func):
    def doc():
        start_time=time.time()
        func()
        end_time=time.time()
        print("run time is %s"%(end_time-start_time))
    return doc
@timer
def t1():
    time.sleep(2)
    print("runing t1")
@timer
def t2():
    time.sleep(5)
    print("runing t2")

10.如何保证测试质量?

1)明确需求细节,详细沟通梳理需求

2)明确测试策略与测试方法

3)严控需求实现完整程度、bug遗留率、按时交付率等指标

4)合理的软件测试流程, 测试过程监控

11.进程和线程

进程:程序一次动态执行的过程

线程:轻量级进程,是一个基本的CPU执行单元

一个线程只能属于一个进程,一个进程可以有多个线程,但至少有一个线程。

资源分配给进程,同一进程的所有线程同享该进程的所有资源。

CPU分配给线程,即真正在CPU上运行的是线程。

12.并行与并发

并行:线程同时执行,是真正意义上的同时

并发:多个线程在单个核心上运行,同一时间一个线程运行,系统不停切换线程。看起来像同时运行,实际上是线程不停切换。是单位时间内的处理能力。

python的多线程:同一时间只能运行一个线程,但是能实现并发

13.python 局部变量和全局变量

 局部变量:定义在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效

全局变量:定义在函数外的变量称之为全局变量,他的作用域范围为全局

总之,测试人员要做的是能够正确判断什么时候不能追求软件的完美,要做的是学会对每一个缺陷进行取舍

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468245.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号