IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 测试面试题 -> 正文阅读

[开发测试]测试面试题

测试面试题

一 、 测试工作流程

需求评审(有开发人员,产品经理,测试人员,项目经理)->需求确定->开发设计文档(开发人员在开始写代码前就能输出设计文档)->写出测试用例->发给开发人员和测试经理看看(正式的评审用例)->接到测试版本->执行测试用例->提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD)->开发人员修改->回归测试 — 提交测试报告—整个测试通过之后—版本上线

二、设计用例的方法

白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断-条件覆盖,路径覆盖

黑盒测试:等价划分类,边界值分析,错误推测法

**测试用例设计点 功能性 ** 易用性 安全性

兼容性(兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行)

三 、 怎么定位前端还是后台的问题

前端bug特点 1, 界面相关 2,布局相关 3,兼容性相关

后端bug特点 1,业务逻辑相关 2,性能相关 3,数据相关 4,安全性相关

前端bug主要分为3个类别:HTML,CSS, Javascript三类问题

出现样式的问题基本都是CSS的bug

出现文本的问题基本都是html的bug

出现交互类的问题基本都是Javascript的bug

\1. 查看前端给的状态码

\2. 查看后端返回信息

\3. 查看日志

\4. 对接口进行测试(Postman)

\5. 查看数据库状态

\6. 实际操作一下确定具体问题

\7. 前端是否有明显报错如(js css JavaScript)静态资源页面展示

\8. 后端获取数据库数据后端跨域接口功能实现

四 、怎么给开发提bug**

一,熟悉Bug管理工具

二,准确地给bug定级

三,准确记录bug信息

Bug的标题 和详细描述

标题主要是对你所提交的Bug进行简明扼要的描述;

提交bug时,应该说明哪些信息

所属模块 bug类型 —(哪一类的错误:代码 界面 安全 性能 设计缺陷等)— 操作系统 — 浏览器

指派给哪位开发 — bug标题 — bug的严重程度 — 修改bug的优先级

复现步骤 (重现步骤最好能有截图和视频类附) 预期结果 实际结果

五、针对bug怎么去判定等级

1.致命问题:

造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等

2.严重问题:

系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。

3.一般问题

功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。

4.轻微问题:

接口、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等

六、除了接口怎么定位问题

看服务日志,有数据库相关报错,还有代码相关报错

七、 接口自动化

我们采用unittest和ddt数据驱动搭建测试框架,(对数据excel读取、yaml配置、Requests接口请求、Re参数化、Pymysql数据库效验、日志等模块实现封装),

1.Openpyxl来处理excel,存储测试数据(用例数据)

2.pyyaml来配置文件(configparse,pyyaml)

  1. Pymysql来连接mysql数据库,执行sql数据,进行数据效验

4.Requests请求库,来向接口发起请求

5.使用logging模块来创建日志器,记录项目中的日志信息

6.使用HttpTestRunner来生成HTML测试报告

7.使用re模块来实现参数化(正则匹配)

8.使用动态创建属性(类属性)的机制来实现接口之间的依赖 (setattr getattr)

八、 python的基本数据类型

整数 int类型 print(‘3+4的值是{}’.format(add))

字符串 字符串就是一系列字符。单引号、双引号或者三引号里面的内容就是字符串。

布尔类型 boolean:布尔类型【只有两个值,分别为True和False】 True and True # ==> True

列表 List 列表用 [ ] 标识, names_python_pc = [‘毛豆’,‘刘德华’,‘张学友’,‘美女’] 有序性包含不同种类、任意类型的对象 本地可修改

元组 tuple 用”()”标识 tup1 = 1,2,3 print(tup1) 有序不可修改

字典 Dictionary {key:value} 无序 **每个键都是唯一的

name_dictionary = {‘老爸’:300,‘老婆’:1000,‘老妈’:800,‘自己’:600,‘孩子’:200} print(name_dictionary)

集合类型:set { } 无序不重复

字符串 —>string类 索引–> index()、find() 长度 -->length() 删除 --> delete

分割 --> split()

运算符

- 算术运算符:+,-,*,/,%,即加、减、乘、除、取余

- 比较运算符:==,!=,>,<,>=,<=,即等于、不等于、大于、小于、大于等于、小于等于

- 赋值运算符:=,+=,-=,*=,/=,%=,即赋值、加赋值、减赋值、乘赋值、除赋值、取余赋值

- 逻辑运算符:and,or,not,即与、或、非

for循环 while循环。

九、json和string 相互转换

json对象(dict)转string 简单地直接转换----使用json.dumps()

string转json对象(dict)----使用json.loads()

十、 常见的异常都有什么 兼容性异常

ArithmeticException 算数异常

NullPointException 空指针异常

ArrtIdexOutOfBoundException 数组越界异常

InsexOutOfBoundException 索引越界异常

ClassCastException 类型转换异常

InputFormatException 输入类型不匹配

IOException 输入输出异常

SQLException SQL异常

IllegalArgumentException 非法参数异常

十一、 fiddler 抓包咋用?为什么要抓包 怎么运用其中功能

\1. fiddler默认只能抓包HTTP协议, 不能HTTPS协议

? 安装hTTPS证书

\2. 过滤器 filters: 过滤掉不需要关注的请求(通过服务器ip或域名进行过滤)

\3. rules --> automatic breakpoints --> before requests after responses

\4. autoresponder 进行重定向操作

\5. 使用composer进行发起请求, 进行接口测试.

\6. 抓包的目的

? \1. 没有接口文档时, 可以以抓取的接口为参照

? \2. 用于定位问题.(前端/后端问题)

? \1. 通过页面发起请求, 抓包, 抓包之后确认一下,前端传递数据的准确性

? \2. 前端调用接口的逻辑是否通畅

? \3. 是否有多次/冗余调用

? \4. 后端响应中, 1. HTTP协议响应状态码 2. 响应数据是否准确

? \5. 业务逻辑是否正确

一.对PC参数进行配置

\1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的)

? 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,

? 勾选CaptureHTTPS CONNECTs,点击Actions,

? 勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行)

? 二.配置fiddler允许远程连接

? 上一步窗口中点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect,默认监听端口为8888(下图Fiddler listens on port就是端口号),若端口被占用可以设置成其他的,配置好后要重新启动fiddler,如下图:

? 三.对手机端进行参数配置

? 首先要保证手机和电脑都处于同一个网络;

? 然后要知道电脑的ip地址(当然这个电脑是安装fiddler的电脑),电脑ip地址可通过cmd,输入ipconfig查询,或网络共享中ipv4找到,我的是192.168.103.53,

? 再者要知道fiddler的端口号,Tools->TelerikFiddler Options->Connections,port中值就是端口号,一般默认为8888;接下来开始操作手机;

? 1.第一步:手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号,点击前往;可以下载证书并安装。在打开的页面中,点击 FiddlerRoot certificate 下载证书,点击允许

? 点击下载之后,安装证书并起个名字,要求设置一个手机密码,自己设置一个

? 第五步:更改手机无线网的代理

? 手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可,

? 第六步操作手机,电脑fiddler中会显示一些http信息,成功;

为什么要抓包:(1)发现了一个bug,提交前端或后端,开发不认账?

1 通过抓包看头部请求信息 是后端的无响应的情况下 没有请求信息就是 前端的bug

2 有请求信息 前端请求是a 响应的b的话 抓包请求的是a 那就前端的错

如果后端请求是b 响应的a 抓包请求信息为b 那就是后端的错

若抓取到的请求返回值中间的http 的状态码是500的话,说明是后端服务器一般的内部错误,那这就是后端的bug

若抓取到的请求返回值中间的http 的状态码是404的话,说明可能后端服务器根本就没有对应地址的服务,当然还有可能是前端JS 提交请求的时候提交了错误的地址。

十二、HTTP和HTTPS的区别:

https则是具有安全性的ssl/tls加密传输协议。

https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。

http是超文本传输协议,信息是明文传输,无连接,无状态

十三、 你们接口用什么工具?接口测试的流程

postman

1、首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。

2、然后使用Postman,点击左上角的“+New”,鼠标点击Collection,新建一个集合,

3、输入你想要给这个collection起的名字,点击右下角的“creat”进行确定

4、选中刚刚建的collection,鼠标右击,在打开的菜单栏中选择“add request”,输入这个接口请求的名称,下方的description中添加描述说明,点击Save进行保存

5、按照接口文档中的描述,输入接口请求的url,添加请求头和请求体,点击运行,就完成了一个接口的测试。

get请求 创建请求 点击选择get方法 url地址栏输入地址 params输入参数 点击send发送

post请求 创建请求 点击选择post请求 url地址栏输入地址 在body输入参数 点击send

设置参数

举例登录来讲 在tests获取token值

然后在环境变量中去设置token环境变量

在下一次个接口中就可以选择上次设置的token环境变量

在Header中手动添加token环境变量

变量名表示的话是用两个大括号中加变量的名

十四、 Postman你们关注什么 会用一个接口传过来的参数当做下一个接口的入参嘛

接口请求信息中,重点需关注四大信息:接口URL地址,请求方法,请求头以及请求参数

获取响应返回信息:状态码,响应头,响应正文

会呀 设置第一个接口返回的参数到环境变量, 第二个接口使用第一个接口的返回值作为下一个接口的请求参数

接口测试的核心测试点

校验接口参数是否达到要求(边界、业务规则)

校验接口返回数据的正确性与格式

校验接口覆盖率是否达到要求(一般要求核心接口要达到100%的测试率,非核心接口根据)

性能指标是否满足要求(接口的响应时间、处理能力)

安全指标是否满足要求(一般接口都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。)

多接口测试 就是批量执行测试用例 点running 勾选需要的测试用例 设定时间

十五、 日志命令

APP端 查看日志 adb logcat

web端 linux 日志查看  tail、 tail -n 10 test.log 查询日志尾部最后10行的日志

十六、 数据库的多表查询怎么用? 多表查询的区别又是啥?

内连接 inner join 连接两个数据表的用法:

select * from 表1 inner join 表2 ON 表1.字段号=表2.字段号

外连接 full join 或 full outer join

SQL语句:select * from表1 full join 表2 student.Num=score.Stu_id;

左外连接 left join

[select * from 表1 left join 表2 on 条件(表1.字段=表2.字段)]

内连接 目的: 内连接的连接结果仅包含符合连接条件的行。

外链接目的 外连接的连接结果包含了符合连接条件的行;还包含了不符合条件的行

内连接需要注意区分在嵌套查询时使用的any以及all的区别,外连接不需要区分,左表和右表都不受限制。两个表不足的地方可用null进行填充。

十七、 linux的常用命令

? ls 查看当前目录下的所有目录和文件

? cd / 切换到根目录

? mkdir aaa 在当前目录下创建一个名为aaa的目录

? rm 文件 删除当前目录下的文件

? find 查询 目录 参数 文件名称

? find /usr/tmp -name ‘a*’ 查找/usr/tmp目录下的所有以a开头的目录或文件

? touch 文件名 在当前目录创建一个名为aa.txt的文件 touch aa.txt

? 看日志的 tail -f reboot 重启

? 修改文件 vim 查看主机IP ifconfig

? 压缩 gzip 解压 gunzip

十八、 unittest 怎么用的 pytset使用

unittest是python内置的单元测试框架

使用方法 1 导入unittest包 2 编写测试类继承unittest.TestCase父类

3 编写测试用例 4 运行unittest测试框架 5 生成测试报告

pytest是基于unittest上的单元测试框架 也就是支持单元测试 内置assert

**四 ** 各种请求 GET请求 post()方法,将需要提交的数据传递给data参数

传递URL参数 构造一个字典,并在请求时将其传递给params参数

定义Headers,同样的将字典数据传递给headers参数

Requests中自定义Cookies不用构造CookieJar对象,直接将字典递给cookies参数

十九 断言

assert xx 判断xx为真

·assert not xx 判断xx不为真

·assert a in b 判断b包含a

·assert a == b 判断a等于b

·assert a != b 判断a不等于b

python元素定位 窗口定位 三大等待 显性等待隐隐性等待

二十、 常见的web ui自动化框架是什么

语言:python

测试框架:unittest

requests和selenium

数据格式的转换:text,json

日志处理:logging —清晰的执行过程,快速定位问题

持续集成:Jenkins(通过插件HTML Publisher/git/Email Extension)进行自动构建,生成HTML,发送邮件

二十一、 python 的 import request

import是导入 requeset是一个模块

1 安装好python3,设置环境变量 勾选pip并下载requests包

2、运行cmd,输入pip install requests

3、成功之后cmd 输入python,回车后再输入import requests来引入这个库

4、pycharm 配置request的包文件

打开pycharm的setting,选择如下:

新建一个本地project。,打开下面的project interpreter,勾选existing interpreter。

project中创建一个新的 py文件,配置好了requests环境

二十二、 Sql数据库的增删改查

insert into +表名 +列名 +值

增加一条信息

insert into Students (姓名,性别,出生日期) values (‘王伟华’,‘男’,‘1983/6/15’)

delete form + 表名 where 列名 +值

删除表中zs的记录

delete form empty where name= ‘zs’

Update?+表名 set?列名=更新值?where?更新条件

蒋某员工的薪资改为三千

update emp set salary =3000 where name = “张”

select * from 表名 where 条件

查询表中工作是店员

select * from emp where job=‘CLERK’;

二十三、 cookie与session的区别

\1. cookie数据存放在客户的浏览器上,session数据放在服务器上

\2. cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗 考虑到安全应当使用session

\3. session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的 性能考虑到轻服务器性能方面,应当使用cookie

\4. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

\5. 所以个人建议:

将登陆信息等重要信息存放为session

其他信息如果需要保留,可以放在cookie中

二十四、 web端文件编码有哪些

UTF-8 GBK ASCII码

二十五 、Post和Get区别

\1. get是不安全的,因为在传输过程,数据被放在请求的URL中,

post的所有操作对用户来说都是不可见的 (安全性)请求体中

2.Get传送的数据量较小,这主要是因为受URL长度限制

Post传送的数据量较大,一般被默认认为不收限制 (传输量)

get执行效率却比post方法好,get是form提交默认方法 (效率性)

二十六、web端和APP端的测试的不同

web测试是基于浏览器的,所以不用考虑安装卸载。

而App是客户端,必须测试安装、卸载、更新,还需要考虑其他异常情况,包括安装时候中断、弱网,安装后删除安装文件(可删除,不影响软件正常运行)。

App还有专项测试,如网络适配性、运营商环境、WIFI。

还有中断测试,就是在操作软件的时候,来电话、短信、电量不足提示等外部事件发生,会不会影响软件正常运行。

(1)性能测试:web页面测试主要关注的是响应时间;而App测试还需要关注流量、耗电量、CPU、内存等—monkey测试的指标

(2)兼容性方面:web是基于浏览器的,所以倾向于浏览器、电脑硬件、操作系统方面的兼容;而App测试兼容的是手机设备,要看设备系统、机型、分辨率、屏幕尺寸。

(3)交互方式:web主要采用鼠标点击方式;而App主要是手指点击、拖拽、手势测试、横屏测试,考虑更多的是手指的交互习惯。重点考虑回退、刷新是否会造成二次提交。

二十七、adb命令的基本使用(安装、卸载、获取日志)

\1. 查看设备 adb devices

\2. adb install xxx.apk //安装软件

adb install -r xxx.apk //重新安装该软件

adb uninstall apk包名.apk //卸载apk软件

\3. 登录设备shell 进入shell环境 adb shell

adb shell 进入手机的超级终端Terminal

adb shell <command命令> //直接shell运行设备命令, 相当于执行远程命令

\4. 从PC上发送文件到手机

adb push <本地路径> <远程路径>

adb push D:\xxx.apk system/app

\5. 从手机上下载文件到PC

adb pull <远程路径> <本地路径>

adb pull system/app/xxx.apk D:\

\6. 查看日志 adb logcat

二十八测试报告内包含哪些内容

1.写测试背景 2.测试目标 3.测试范围

4.测试环境 5.测试数据 6.测试标准(重点)

7.测试进度 8.测试结果 9.测试结论

二十九、 常用的http状态码都有哪些

200 – 请求成功 301 – 资源(网页等)被永久转移到其它URL

404 – 请求的资源(网页等)不存在 500 – 内部服务器错误

三十一、 web端的项目部署 Python+Selenium+unittest

1、搭建环境-安装jdk 安装python sdk 安装Selenium 安装pycharm

2、安装selenium模块: cmd 输入 python -m pip install selenium

3、seleniumide来进行录制web操作 在文件中找到元素标识

4、导入from selenium import webdriver

5、编写浏览器驱动的相关代码

6、根据元素特征(在selenium获取元素特征) 通过driver来操作元素

7、比说 (find+八大 元素定位).click/.sendkeys/swipe

8、新建Python unit test文件 import unittest导入模块

9、在测试方法中用断言进行测试

10、import HTMLTestRunner 生成测试报告

三十二 、数据库 模糊查询 分组查询 排序查询 where和having的区别

Where

where是一个约束声明,使用where来约束来自数据库的数据;

where是在结果返回之前起作用的;

where中不能使用聚合函数。

having:

having是一个过滤声明;

在查询返回结果集以后,对查询结果进行的过滤操作;

在having中可以使用聚合函数。

一*模糊查询**

% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

select * from +表 where + 字段 Like 条件 把u_name 有“三”的记录全找出来。

select * from [user] where u_name LIKE ‘%三%’

? _ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

select * from+表 where + 字段 Like 条件 这样name为三个字且第一个字是“三”的;

比如 select * from [user] where u_name LIKE ‘三__’

二 分组查询

select + 字段 +条件 from +表 group by +字段

select classnum, max(age) from tb group by classnum;

查询每个班学生的最大年龄

查询每个班中男女生的最大年龄

select class, sex,max(age) from tb group by class, sex;

三 排序查询

select * from +表 + order by 字段 +排序

asc代表的是升序 desc代表的是降序

按工资降序

select * from employees order by salary desc

where:

where是一个约束声明,使用where来约束来自数据库的数据 having是分组数据进行过滤

where是在结果返回之前起作用的;

where中不能使用聚合函数。

having:

having是一个过滤声明; where是对查询数据进行过滤

在查询返回结果集以后,对查询结果进行的过滤操作;

在having中可以使用聚合函数。

三十三 selenuim 八大元素定位方式**

一 八大定位 .ID定位 2.name定位 3.class name定位 4.tag name定位

5.link_text 6. partial_link_text定位 7.css定位 8.xpath定位

如果我现在通过id元素定位 现在找不到元素 请问是什么原因

id为虚拟 id(自动生成 的id)

页面中有frame 没办法定位

switch_to.frame可以通过id,classname,tag_name来定位的,

点击速度过快 页面没有加载出来就需要点击页面上的元素

这个需要增加一定等待时间,显示等待时间可以通过WebDriverWait 和util来实现

解决方法 switch_to

三十四 会在linux环境下搭建测试环境吗

JDK安装

\1. 通过FTP上传JDK压缩包;

\2. tar –zxvf 文件名 解压JDK文件

\3. mv 旧文件名 新文件名 修改文件名

\4. 修改JDK环境变量 vi / etc/profile

\5. 在文件末尾添加修改变量信息并保存(shift+i进入编辑模式,ESC退出编辑模式,即为命令模式,:wq!保存并退出):

\6. export JAVA_HOME=/usr/java1.7

export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAH?OME/bin:PATH

export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAH?OME/lib/dt.jar:JAVA_HOME/lib/tools.jar

\7. 重新执行系统配置文件 source /etc/profile

Tomcat安装

\1. 通过FTP上传Tomcat压缩包

\2. tar –zxvf 文件名 解压Tomcat文件

mv 旧文件名 新文件名 修改文件

\3. 修改端口号(默认为8080)

进入conf 修改server.xml文件

\4. 启动 startup.sh

关闭 shutdown.sh

访问:浏览器访问地址http://192.168.0.253:8080/

MySQL5.7安装

\2. 创建MySQL用户 mkdir /_data/mysql

创建MySQL用户组 grounpadd mysql

\3. 通过FTP上传MySQL压缩包

\4. tar –zxvf 文件名 解压MySQL文件

\5. 修改文件名 mv 旧文件名新文件名

\6. 初始化mysql数据库 cd /_data/mysql

./bin/mysqld --user=mysql --basedir=/_data/mysql --datadir=/_data/mysql/data/ --initialize

\7. 启动服务 ./support-files/mysql.server start(或者service mysqld start)

\8. 修改文件 (红色为添加的实际安装路径)

vim support-files/mysql.server

basedir=/home/mysql

datadir=/home/mysql/data

\9. 创建软链接 ln -s /home/mysql/bin/mysql /usr/bin/mysql

\10. 通过FTP新建 my-default.cnf 配置文件(文件内容网上百度通用)

\11. 拷贝配置文件模板为新的mysql配置文件

cp my-default.cnf /etc/my.cnf

\12. 设置编码为utf8以防乱码

\13. 配置mysql服务开机自动启动

\14. 登录mysql服务 mysql -uroot –p 回车

use mysql

修改密码

\15. 重启服务,登录mysql,输入新密码,登录成功

\16. 设置远程连接 mysql> grant all privileges on . to ‘root’@’%’ identified by ‘123456’

\17. 通过mysql连接工具连接,连接成功则OK

三十五、在python项目下 如果开发没有提供详细的接口文档会怎么做

和开发要接口文档,用fiddler抓包并根据需求文档进行测试,

\1. 找开发要(开发不一定给)

\2. 看开发代码(需要有代码能力)

\3. 抓包获取(最简单) ,用fiddler抓包并根据需求文档进行测试,

三十六、列表:list, 元组:tuple, 字典:dict 集合:set之间的区别

相同点:

a.四者都是数据结构

b.四者都是可迭代对象

c.四者都可以存储不同类型的数据

d.可以通过系统的list(),tuple(),dict(),set()进行相互转换

不同点: 列表元组字典可重复 7 集合不可重复

a 列表直接储存元素 有序 可进行增删改查

b 元组 直接储存元素 有序 不能进行增删改

c 字典 是以键值对形式存在的,无序,键不可重复,值可重复

d 集合 直接储存元素 无序 自动去重 可修改

三十七、你是怎样做接口测试的

根据接口文档来进行设计具体的测试用例,等价划分类,边界值分析,错误推测法

三十八、你们的测试流程是怎样的的

我拿到了开发设计文档,根据我负责的理财这块的校验点来输出测试用例,接到我这个模块的测试版本来执行测试用例,发现了提交bug,开发人员修改,在进行下一步测试,

三十九、平时什么时候会用到monkey测试 哪个时期会用到

一般版本前期,目的是为了大量发现bug 每一个版本会用到 跟我们版本的更新迭代有关系

四十 、那么为什么要进行弱网测试?

测试稳定性 3G网都很少,因此,这款AP应用要想完成交付,就一定要在弱网状态甚至在没有网络状态下运行。

模拟弱网环境测试 弱网功能测试:2G/3G/4G、高延时、高丢包

无网状态测试:断网功能测试、本地数据存储

用户体验关注:响应时间、页面呈现&超时文案&超时重连、安全及大流量风险

网络切换测试:Wifi----4G/3G/2G-----无网多状态切换

四十一、断言总结

接口断言

1、判断请求返回的状态为200,200就是正常

2、判断请求返回中其它字段的值(或状态)

3、获取json数据,并校对返回值的正确性

4、判断响应时间

5、判断返回数据的类型

6、判断返回数据中是否存在某个元素

自动化测试断言 判断条件是否成立

assertEqual(a,b,[msg=‘测试失败时打印的信息’]):若 a=b,则测试用例通过

assertNotEqual(a,b,[msg=‘测试失败时打印的信息’]):若a != b,则测试用例通过

assertTrue(x,[msg=‘测试失败时打印的信息’]):若x是True,则测试用例通过

assertFalse(x,[msg=‘测试失败时打印的信息’]):若x是False,则测试用例通过

assertIs(a,b,[msg=‘测试失败时打印的信息’]):若a是b,则测试用例通过

assertNotIs(a,b,[msg=‘测试失败时打印的信息’]):若a不是b,则测试用例通过

assertIsNone(x,[msg=‘测试失败时打印的信息’]):若x是None,则测试用例通过

assertIsNotNone(x,[msg=‘测试失败时打印的信息’]):若x不是None,则测试用例通过

assertIn(a,b,[msg=‘测试失败时打印的信息’]):若a在b中,则测试用例通过

assertNotIn(a,b,[msg=‘测试失败时打印的信息’]):若a不在b中,则测试用例通过

assertIsInstance(a,b,[msg=‘测试失败时打印的信息’]):若a是b的一个实例,则测试用例通过

assertNotIsInstance(a,b,[msg=‘测试失败时打印的信息’]):若a不是b的实例,则测试用例通过

(一)assertEqual 和 assertNotEqual

- assertEqual:如两个值相等,则pass

- assertNotEqual:如两个值不相等,则pass

(二)assertTrue和assertFalse

- assertTrue:判断bool值为True,则pass

- assertFalse:判断bool值为False,则Pass

(三)assertIsNone和assertIsNotNone

- assertIsNone:不存在,则pass

- assertIsNotNone:存在,则pass

四十二、你是 怎么进行测试的(问的就是测试的关注点)

那我这边的关注赎回这块的到账日期需要知道最快的结果,会在数据库里修改购买的时间,

四十三、你们几个测试 任务是怎么分配的

我们是两个测试 具体是按照情况来分配的 ,如果是按照移动端来划分的话我是进行的是安卓系统模块,她进行的是ios模块,如果是同一个系统的话,我负责的是xx模块,她负责是xx模块

四十四、自动化测试怎么进行校验

举例 拿一个按钮讲 try 如果执行成功按钮显示了,是可以点击的

1、首先执行 try 中的代码块,如果执行过程中出现异常,系统会自动生成一个异常类型,并将该异常提交给 Python 解释器,此过程称为捕获异常。

2、 当 Python 解释器收到异常对象时,把该异常对象交给该 except 块处理,这个过程被称为处理异常。如果 Python 解释器找不到处理异常的 except 块,则程序运行终止,Python 解释器也将退出。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:33:46  更:2021-12-06 15:34:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:17:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码