前言
本博客主要记录本人在面试过程中遇到的一些常见的问题,做一些整理及个人复盘后更改性答复,欢迎大家补充与指正。
功能测试基础问题
主要提问一些功能测试手工测试的基础问题:
- Q:请回答一些测试用例常用的编写方法:
A:测试用例常用的编写方法主要分为:等价类、边界值、场景法、正交、因果图、错误推断等 - Q:一个详细的测试计划需要包含哪几个方面:
A:一个详细的测试计划应该包含:编写目的、项目背景、项目质量目标、部署软硬件及系统架构、测试人员及测试工具安排、测试策略、进度安排、计划总结。 - Q:缺陷报告应该包含哪几个方面:
A:应该包含编号,测试模块,前置条件、操作步骤、预期结果、实际结果、缺陷优先级(根据要求不同可能还会需要截图,当时我问面试官的时候她给出的答案和禅道提bug的流程一致,但我认为每个公司要求 不一致只要重要部分讲出即可) - Q:如果发现一个bug,开发不认同怎么办;
A:首先排查自己客户端配置,或个人硬件问题,如果发现同一类硬件出问题可以提兼容性bug,如果不是自己这边的问题,开发不认同的话,找设计确认。 - Q:常见的测试方法有哪些
A:常见的测试方法有:黑/白盒测试(能看见代码和不能看见代码)、动态/静态测试(运行程序进行测试和不运行程序进行测试)、手工/自动化测试 、单元/集成/回归/验收测试等。 - Q;应该从那些方面编写测试用例;
A:首先应该保证单功能点的覆盖率,其次是业务流程测试覆盖,然后再从兼容性、稳定性、安全性、易用性、性能方面考虑设计测试用例。
fiddler和jmeter测试工具使用问题:
主要考察是否真正使用过fiddler和jmeter,这种基本上问到问题很少,但是不用是真的回答不上来。
Q:fiddler怎样抓出自己想要的包:
A:用筛选器筛选只抓规定的URL,也可以过滤掉一些304跳转之类的请求
Q:fiddler怎么抓https的请求
A:勾选相关的抓取HTTPS的选择,然后下载或更新对应的证书文件并重启就可以了。
Q:fidder怎么抓app的包
A:首先保证手机和抓包工具电脑在同一局域网,然后在手机设置代理,统一端口,下载证书,就可以了
Q:jmeter怎么做接口关联
A:正则提取器,提取想要关联的数据
Q:网络挟制的原理:
A;下载源码到本地,在本地修改页面源码,使页面跳转读取本地响应数据。
ps:工具类自己用一遍基本上就会了,推荐大家找哔哩哔哩上相关教程学一下。
接口及UI自动化测试:
接口和UI自动化这边做的不是很多,所以我暂时找不到什么问题要分享,下面写一些关于接口的基础知识(也欢迎大佬补充和指正):
- url:是互联网标准资源的地址,一般称为统一资源定位符
- 组成:协议:域名 端口 路径 查询参数
- http:超文本传输协议,基于请求与相应的应用层协议
- 作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议。
- 组成:
http请求:定义请求数据格式 一般分为:请求行、请求头、请求体
http响应:定义相应数据格式一般分为:状态行、响应头、相应体 - http响应状态码:
1xx:指示信息
2xx:成功
3xx:重定向
4xx:一般是客户端错误
5xx:一般是服务端错误
常见的请求方法:
get(查询)、post(新增)、put(修改)、delete(删除)
UI自动化难点在于元素定位,一般有八种定位方法(之前我有发过一篇UI定位的博客,但是版本有点老,之前的语法有一些改动,下面重新巩固一下这几种定位方法):
1、详细的定位代码:
from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome()#实例化
driver.get("https://www.baidu.com")
#用ID定位
driver.find_element(By.ID,"ID的值")
# name定位
driver.find_element(By.NAME,"name")
# class定位
driver.find_element(By.CLASS_NAME,"kw")
# linktext定位
driver.find_element(By.LINK_TEXT,"用超链接")
#部分超链接定位
driver.find_element(By.PARTIAL_LINK_TEXT,"部分超链接")
# xpath定位
driver.find_element(By.XPATH,"xpath路径")
#css定位
driver.find_element(By.CSS_SELECTOR,"css")
着重说一下css这个定位方法,因为现在网站开发基本上用框架,id和name用的比较少,基本上就是xpath和css这两个定位用的比较多,用css代码也可以包含前几种定位方法:想详细了解一下的也可以跳转这个链接:selenium4css定位方法
MySQL增删改查和linux的一些基本命令:
- 有很多用人单位是要求会基本的数据库增删改查和一些linux的基本命令的:
MySQL语句:
功能 | 语句 |
---|---|
查询所有数据库 | show database; |
查询当前数据库 | select database(); |
创建sql数据库 | create database[if not exists] 数据库名; |
使用数据库sql | use 库名; |
查询当前数据库所有表 | show tables; |
查询表结构 | desc 表名; |
查询指定建表语句 | show create table 表名; |
添加字段 | alter table 表名 add 字段名 类型; |
修改数据类型 | alter table 表名 modlfy 字段名 新数据类型 (长度); |
修改字段名和字段类型 | alter table 表名change 旧字段名 新字段名 类型(长度)comment; |
删除字段 | alter table 表名 drop 字段名; |
修改表名 | alter table 表名 rename to 新表明; |
删除指定表{如果存在} | drop table[if extsts]表名; |
给指定表添加数据 | insert into 表名(字段名1,字段名2,、、、)values(值1,值2,、、、); |
给全部字段添加数据 | insert into 表名 values (值1,值2,、、、); |
删除数据 | delete from 表名 where 条件 |
查询多个字段 | select(字段一,字段二,字段三、、、)from 表名; |
分组查询 | select 字段列表 from 表名 where 条件 group by 分组 |
顺序查询 (字段一降序) | select 字段列表 from 表名 where 条件 order by 字段1 desc |
ps以上是常用的mysql增删改查语句 有些括号是中文 请勿直接复制
linux命令:
- linux我还没有学完,但是面试最多的一个关于linux的问题是:
Q:怎样查看日志
我觉得应该用cat文件名查看 感觉没有那么简单,有补充的欢迎补充
后记:
- 诚挚的希望诸位能将面试或工作中遇到的问题回复出来,这样能够帮助更多的应届小伙伴或者行业内的诸位有针对性的提升自己。鞠躬~