测试工程师面试问题(带答案)

1.常见的网络攻击手段?

1.sql注入:通过在输入字段内输入sql语句,修改查找数据库

2.xss跨脚本攻击:通过在输入框内输入js脚本,篡改网页

3.ddos攻击:通过发送大批量的请求使服务器无法响应,宕机

4.跨站请求攻击:通过携带授权,欺骗服务器进行操作

5.中间人攻击:将自己置于两个通讯方中间,拦截篡改双方的通讯

2.如何防御?

1.sql注入:参数化查询,防止作为语句执行

2.Xss跨脚本攻击:对值的内容进行过滤,如剔除尖括号,使语句不正确

3.ddos:使用https协议,使用cdn分散流量

4.跨站请求攻击:验证Referer

5.中间人攻击:使用加密通讯如vpn,使用数据证书

 

3.用例设计的方法有哪些?

1.等价类:将数据分为几个等价类,每个等价类都有相同的功能和性质,设计用例时抽取几个有代表性的用例

2.边界值:通过测试数据的边界问题,如输入框的字符限制

3.场景法:模拟用户的场景测试

4.正交法:主要用于多因素的场景,多个功能点组合测试,用较少的用例达到高覆盖率

5.因果图:不同原因导致的不同的测试结果

6.错误推断:通过经验去判断最容易出现错误的地方

 

4.fiddler如何抓取https请求?

1.在选项中点击https,勾选忽略服务器错误证书

2.弹窗安装证书

3.在浏览器中导入证书

5.fiddler如何修改请求内容?

1.在需要修改的请求设置添加断点

2.请求发起后在fiddler中点击请求的原始数据

3.修改原始数据,并点击运行

6.HTTP和HTTPS的区别?

http属于明文传输协议,在传输过程中容易受中间人攻击

https是加密传输协议,通过ssl/tls对数据进行加密

http使用80端口

https使用443端口

7.鉴权的方式有哪些

1.cookie:存储在客户端,有时间限制,通常用于记录用户偏好,会话状态等,存储的内容少

2.session:存储在服务端,存储的内容多

3.token:用于确认用户身份,在成功登录后会生成token

8.响应状态码有哪些?

1XX:临时响应状态码,通知客户端请求被接收,客户端继续发送内容

2XX:

2OO 请求成功

201 成功请求并创建了新的资源

202 已接收请求,但是未处理完成

204 服务成功处理了,但是没有返回内容

 

3xx:

301:请求的资源被永久的移动

302:资源被临时移动

304:如果资源未被修改将访问缓存

4xx:

400:客户端请求语法错误,服务端无法理解

401:要求身份验证

403:服务端拒绝执行

404:找不到网页

5xx:

500:服务器错误

502:9.请求的类型以及区别?

get:通过url传输,参数通过?拼接,明文显示,长度有限制

post:通过请求体传输,可以携带文件和大量内容,内容不会明文显示

10.bug定位有哪些方法?

1.通过控制台查看接口参数是否正确

2.查看接口返回数据是否正确

3.排除法,更换浏览器,网络,清除缓存

11.如何区分前端和后端的bug?

1.前端:

页面功能

排版布局

渲染异常

2.后端:

逻辑问题

接口错误

服务端问题

错误代码

查看接口:传参错误找前端

响应返回错误找后端

控制台js报错找前端

12.接口中常见的请求头有哪些?

host:主机和端口号

accept:告诉服务器支持的内容

Accept-Encoding:编码类型

content-type:告诉服务器请求体的媒体类型

cookie:用于辨识用户

token:用户令牌

referer:发出请求的页面

 

13.TCP/IP三次握手,四次挥手

14.性能测试的指标有哪些?

1.响应时间

2.并发数

3.吞吐量

5.错误率

6.资源利用率

15.负载测试和压力测试的区别?

负载:主要评估系统在一定负载下运行的效果

压力:主要评估系统能够承受最大的压力是多少

16.α测试和β测试的区别?

阿尔法测试:内测,在内部少量用户下模拟真实用户使用

贝塔测试:公测,面向真实人群开放,时间,环境不集中

 

17.数据库的使用?

增:

innsert into 表名(对应的表名) values(1,23,4)

删:

delete from 表名 where ,,,

TRUNCATE TABLE 表名

改:

update 表名 set 修改后的值 where 所在的位置

查:

select 查询的信息 from 表名 where 位置

连接查询:

18.python中的数据容器有哪些?

1.列表

2.字符串

3.字典

4.元祖

5.集合

列表,字符串是有序的可以通过下标查找元素的位置

字典,元祖,集合是无序的且无法修改

元祖,字典是不可重复的,元祖会进行去重

19.常见的python内置函数有哪些?

    1. 1.print()打印
    2. 2.input 获取键盘输入
    3. 3.len 获取字符串长度
    4. 4.type 获取变量类型
    5. 5.int ,str,float 转换对象类型
    6. 6.iSlower 小写
    7. 7.replace 替换字符
    8. 8.import 导入
    9. 9.count 统计
    10. 10.randiom 随机数
    11. 11.range 返回一个列表打印
    12. 12.open 打开文件
    13. 13.write 修改
    14. 14.read 读取
    15. 15.close 关闭
    16. 16.readlines 获取文件的所有行
    17. 17.readline 获取文件的一行
    18. 18.strip 去除两侧首位的指定字符
    19. 19.split 对字符进行分割
    20. 20.insert 在指定位置插入字符
    21. list 转换为列表
    22. index 查找第一次指定字符的位置
    23. pop 删除指定位置的值
    24. append 在末尾插入
    25. del 删除指定元素
    26. clear 清空所有
    27. def 定义函数
    28. ads 返回绝对值
    29. json().dumps 转换为json数据
    30. json.loads 转换为python对象

20.将列表倒序输出?

 

 

print()

pr

print(list[::-1])设置步长为-1代表从后面开始取

切片的使用方法[开始:结束:步长]

 

21.python的循环语句?

1.for in 遍历某个对象,直到结束为止

2.while 在给定条件下,满足条件就一直循环

22.python的判断语句?

1.if elif else 符合判断条件则运行相应的大麻块

23.报错如何处理?

try:
    pass#可能报错的代码
except Exception as e:
    print(e)#错误后执行这块代码
else:
    print('没有报错也会执行这一块')
finally:
    print('无论是否报错都会执行')

24.jmeter如何参数化测试?

1.添加配置原件:csv数据文件设置

2.配置csv文件地址,文件列头对应的对象名,编码格式,

3.在需要参数化的接口中引用

25.UI自动化常见的元素定位方法?

    • id
    • name
    • classname
    • css
    • xpath
    • tag name
    • text

26.自动化测试中等待的几种方式?

    • 强制等待,time.sleep()
    • 隐性等待,driver.implicitly_wait(30)
    • 显性等待,
    ■ element = WebDriverWait(driver, 10).until(  
    EC.visibility_of_element_located((By.ID, 'some_id'))  
)  
    • driver:浏览器驱动对象。
    • timeout:最长超时时间,单位通常为秒。
    • poll_frequency:检测间隔时间,默认为0.5秒。
    • ignored_exceptions:超时后的异常信息,默认情况抛出NoSuchElementException异常。

使用until或until_not方法

    • until(method, message=''):调用该方法提供的驱动程序作为一个参数,直到返回值为True。
    • until_not(method, message=''):调用该方法提供的驱动程序作为一个参数,直到返回值为False。

 

27.编写ui自动化脚本的步骤?

  1. 安装浏览器驱动安装依赖包 selenium,pytest
    1. 设置前置条件,设置浏览器对象为全局变量
    2. 设置后置条件,关闭浏览器
    3. 编写测试用例,定位元素,获取值,做断言
    4. 安装allure
    5. 运行脚本 pytest -vs --alluredir=./report/re
    6. 查看测试报告,allure serve ./report/re

28.如何搭建自动化测试框架?

  • testsuite 测试套件,放用例的
  • utils 放工具函数
  • docs 放文档
  • reports 放报告
  • pytest.ini 配置文件
  • requirements.txt 依赖包
  • README.md 说明文件

29.acuntix扫描工具的使用

https://www.cnblogs.com/xiaopo/p/17550419.html

30.测试中遇到的问题?

  1. 在测试环境测好的功能到了预发布老是会出现同样的问题

原因:开发是在平台内修改的代码,多人协同时提交代码把别人代码覆盖掉了

2.开发提交过来的系统,老是主要功能都无法使用

原因:开发没有自己跑冒烟用例

31.令你难忘的bug?

1.在购物车结算页面,使用折扣优惠卷后,前端显示的金额与真实结算的金额不一致

原因:我们产品都是整数型,折扣卷打折后存在小数点后几位,前端用了四舍五入,后端传的完全金额,导致付款金额与显示金额不一致

排查:通过查看接口,返回的值与前端显示不一致

2.在登录页面,输入框输入js脚本‘alert('test')’,提交表单后,脚本被执行

3.在供应链系统中,由运营提交选品任务,选品任务将自动给审核任务少的采购进行审核,采购只能看到自己的审核任务。但是当采购只剩采购主管的时候,这条任务就没有采购进行审核,没有人能看到这条采购信息

原因:开发没有考虑采购人员为空的情况,也未设置无采购人员时转交给采购主管审核

posted @ 2024-05-30 11:04  小破的博客  阅读(792)  评论(0编辑  收藏  举报