1:公司流程
首先是上层领导开会确定项目进行一个立项,然后进行一个产品人员编写一个产品说明书,需求人员编写需求文档,然后参加本项目的人进行一个需求评审,开发那边的就是概要设计->编码->自测。测试这边的话就是编写测试计划,编写测试用例,用例评审,冒烟测试,功能测试,提交bug库,回归测试。验收测试。上线。
2:测试计划内容
测试目的,测试范围,测试背景,测试资源,测试环境,指派人员,时间安排,人员分配
3:测试用例内容
测试编号,测试标题,所属模块,前置条件,预期结果,实际结果,执行步骤,输入数据,完成时间,用例级别,优先级
4:缺陷报告内容
缺陷编号,缺陷标题,所属模块,缺陷级别,优先级,缺陷类型,缺陷状态,测试环境。
5:bug的生命周期
新建,已打开,已关闭,已修复,重新打开。
6:测试报告内容
测试目标,测试依据,测试范围,测试环境,进度,回归测试,遗留多少bug,bug如何处理。
7:get/post区别(put和delete)
get将参数放在url中,post放在请求体重,get比post更加的安全。
get参数有大小限制,post没有一定的限制。
get是获取请求,post是提交请求。
8:app和web的区别
c/s响应速度快,用户体验好,一般用于局域网中,但是开发成本维护高。b/s可以实现跨平台,客户端零维护,日常维护中使用的是b/s,实际开发过程中使用的是c/s架构。
9:接口测试用例内容
接口编号,接口标题,接口模块,请求路径,请求参数,请求方式,预期结果,实际结果,请求体,请求头。
10:接口测试流程
首先拿到接口文档,分析该接口文档,请求参数,请求路径,请求头,请求体,参数是否唯一,参数是否必填,编写测试用例,使用工具进行一个测试
11:如何实现多接口关联
首先拿到一个接口,设置断言,将第一个接口的返回值转换为json格式的字符串,将这个字符串设置成全局变量,在第二个接口中是使用{{}}来接收这个全局变量。
12:接口中常见的断言有哪些
状态码断言检查是否符合状态码。
Setting an environment variable (设置一个环境变量)
Setting a nested object as an environment variable (将嵌套对象设置为环境变量)
Getting an environment variable (获取环境变量)
Getting an environment variable (whose value is a stringified object) 获取一个环境变量(其值是一个字符串化的对象)
Clear an environment variable (清除一个环境变量)
Set a global variable (设置一个全局变量)
Clear a global variable (清除全局变量)
Get a variable (获取一个变量)
13:数据库的增删改查以及多表联查语句
增:insert into 表名 vslues(值,值,值——)
删:delete from 表名 where 条件
改:update 表名 set 旧值=新值 where 条件
查:select * from 表名 where 条件
多变关联:select * from 表名1,表名2 where 表1.id = 表2.id
14:左右关联的区别
左:展示与左表有关系的数据,右边的显示为空
右:展示与右边有关系的数据,左表的不展示
15:具体举例:
查询学生表中成绩最高的前三条数据:select * from 表名 order by desc limit 0,3;
查询学生表中姓张的信息:select * from 表名 where name = ‘张%’;
查询学生表中男女生人的数量:select count(*) from student group by sex;
查询成绩在50到80之间的信息:select * from 表名 where 成绩 between 50 and 80;
16:liunx基本命令
动态查看日志:tail -f 日志名
过滤关键字:grep 关键字 文件名
查询文件内容:cat 文件名
查询进程和杀进程:ps -ef 进程名 查看所有的进程 kill -9 进程名 杀死进程
查询端口:netstat -an 端口 查看端口号
查询cpu/内存/磁盘:cpu:top,内存:free,磁盘:df -h
查询文件名的路径:压缩和解压tar包:压缩打包tar:tar -zcvf 包名.tar 要打包的目录/文件。解压tar包:tar -xvf 包名.tar
17:Linux中环境的搭建和项目的部署
如何配置jdk,tomcat和MySQL,以及.war包的操作:
安装jdk,tomcat(配置环境) ? 1:从公司的工具库中拿到jdk.tar,tomcat.tar包 ? 2:通过远程连接工具(ssh/xshell)连接Linux服务器,将jdk和tomcat上传到服务器上 ? 3:首先解压jdk.tar包(tar -xvf),将解压的之后的jdk路径填写在配置文件中 ? 4:重启配置文件 ? 5:通过Java -version 判断是否安装成功,安装成功则显示jdk的版本信息(1.8.0的版本) ? 6:jdk配置成功之后,接下来解压tomcat.tar包(tar -xvf ) ? 7:开放8080端口 ? 8:在tomcat中的bin目录在,启动(./startup.sh), ? 9:在游览器中输入ip:8080,可以检验tomcat是否成功启动(如果tomcat没有启动,可以通过ps -ef | grep tomcat 查看tomcat进程是否开启,如果没有开启,,再次执行启动tomcat命令)
1:将开发的压缩包(.tar),解压之后,放到tomcat中的webapps目录下,重启tomcat(./startup.sh) ? 2:在游览器中输入ip:8080/解压后名称,查看项目
1:从公司的工具库中拿到mysql.tar包 ? 2:通过远程连接工具(ssh/xshell)连接Linux服务器,将mysql压缩包上传到服务器上 ? 3:解压mysql.tar包(tar -xvf ) ? 4:解压后的rpm文件,分别进行客户端和服务端的安装(rpm -ivh) ? 5:启动mysql(service mysql start) ? 6:将mysql加到系统服务中并设置开机启动 ? 7:登录mysql(msyql –u root -p) ? 8:修改密码(set password = password('xxx');) ? 9:需要设置开启远程登录mysql的权限 ? 10:开放Linux的对外访问的端口3306 ? 11:通过连接MySQL工具(navicat)直接访问
?
18:如何定位问题(charles)
首先使用charles抓取该接口,抓取到以后使用断点调试来查看是请求(请求体,请求头,请求路径)出错的话就是前端的错误。
是响应(响应头,响应文本信息)出错的话那么就是后端的问题
19:Charles中常见的操作
下载证书:代理端口默认为 8888(可以修改),并且勾上 Enable transparent HTTP proxying 就完成了在 Charles 上的代理设置。勾上 Enable SSL proxying 就完成了在 Charles 上的 SSL 代理设置。之后也可以选择 Add,然后填入需要监控的 Host 和 Port 信息,这样就达到了针对某个域名启用 SSL 代理的目的。
断点调试:Breakpoint Settings 和 Enable/Disable Breakpoints 配合使用,在 Enable Breakpoints 的状态下,可以通过 Breakpoint Settings 配置 Charles 的断点模式。勾选 Enable Breakpoints 启用断点模式,选择 Add,然后填入需要监控的Scheme、Procotol、Host 和 Port 等信息,这样就达到了设置断点的目的。然后可以来观察或者修改请求或者返回的内容,但是在这过程中需要注意请求的超时时间问题。或者可以在某个想要设置断点的请求网址上右击选择 Breakpoints 来设置断点。
弱网测试:Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的状态下,可以通过 Throttle Settings 配置 Charles 的网速模拟配置。勾选 Enable Throttling 启用网速模拟配置,在 Throttle Preset 下选择网络类型即可,具体设置可以根据实际情况自行设置。如果只想模拟指定网站的慢速网络,可以再勾选上图中的 Only for selected hosts 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。
本地修改:Map Local 工具使您可以使用本地文件,就像它们是远程网站的一部分一样。您可以在本地开发文件,并像在线上一样测试它们。本地文件的内容将返回给客户端,就像它是正常的远程响应一样。
Map Local 可以大大加快开发和测试速度,否则您必须将文件上传到网站以测试结果。使用 Map Local,您可以在开发环境中安全地进行测试。
20:登录/注册的测试用例
用例编号 模块 标题 用例级别 优先级 前置条件 输入数据 执行操作 预期结果 实际结果
qq_dl_1 qq账号 验证输入账号大于等于6位小于等于10位的自然数,没有特殊字符 高 高 都是自然数 输入账号:1318013443 1:输入账号2:输入密码 提示“输入账号成功,注册成功”
qq_dl_2 qq密码 验证输入密码大于等于6位小于等于12位的字符和字母,没有特殊字符 高 高 大于等于6位小于等于12位 输入密码:hzc123 1:输入账号2:输入密码 提示“输入密码成功,注册成功”
qq_dl_3 qq账号 验证输入账号小于6位 中 中 都是自然数 输入账号:123 1:输入账号2:输入密码 提示“输入账号失败,账号长度大于等于6位小于等于10位”
qq_dl_4 qq账号 验证输入账号大于10位 中 中 都是自然数 输入账号:12345678910 1:输入账号2:输入密码 提示“输入账号失败,账号长度大于等于6位小于等于10位”
qq_dl_5 qq账号 验证输入账号有特殊字符 中 中 账号大于等于6位小于等于10位 输入账号:1233456¥ 1:输入账号2:输入密码 提示“输入账号失败,账号不能输入特殊字符”
qq_dl_6 qq账号 验证输入账号为中文 中 中 账号大于等于6位小于等于10位 输入账号:1233456我 1:输入账号2:输入密码 提示“输入账号失败,账号不能输入非数字类型”
qq_dl_7 qq账号 验证输入账号为英文 中 中 账号大于等于6位小于等于10位 输入账号:1233456a 1:输入账号2:输入密码 提示“输入账号失败,账号不能输入非数字类型”
qq_dl_8 qq账号 验证输入账号为负数 中 中 账号大于等于6位小于等于10位 输入账号:-12334561 1:输入账号2:输入密码 提示“输入账号失败,账号不能输入特殊字符”
qq_dl_9 qq密码 验证输入密码小于6位 中 中 小于等于12位 输入密码:hzc12 1:输入账号2:输入密码 提示“输入密码长度不够,注册失败”
qq_dl_10 qq密码 验证输入密码大于12位 中 中 大于等于6位 输入密码:111111111111 1:输入账号2:输入密码 提示“输入密码长度过长,注册失败”
qq_dl_11 qq密码 验证输入密码有空格 中 中 大于等于6位小于等于12位 输入密码: 1111111 1:输入账号2:输入密码 提示“不能有空格,注册失败”
21:编写测试用例的方法和对应场景
等价类划分:等价类划分法是将所有程序的输入域划分成若干个子集合(等价类),然后从每一个子集合中选取少数具有代表性的数据作为测试的输入数据,?在该值集合中,所有的输入数据对于揭露软件中的错误都是等价的,等价类划分法分为有效等价类跟无效等价类。
场景:微信发红包有效等价类:1)1~100 4)数值 ? 6)整数。+无效等价类:2)小于1 ? 3)大于100 ? 5)非数值(中文,特殊符号,字母,空格,空白) ? 7)小数
边界值:边界值分析法是对等价类划分法的一个补充,边界值一般都是从等价类的边缘值去寻找
场景:如果需求规定范围或者规定了取值的个数时,可利用边界值进行测试
场景法:通过场景描述的业务流程(业务逻辑),也包括代码实现逻辑,设计用例来遍历场景,验证软件系统功能的正确 性
场景:画出流程图--产品需求文档,画好了;或者是需要测试自己画--wps,office-visio,在线processon
正交实验:表单中有很多的参数需要提交的时候可以使用正交表法
场景:表单中有很多的参数需要提交的时候可以使用正交表法
错误推测:例如,测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用例:
1) 无SIM 卡插入时进行呼出(非紧急呼叫)
2) 插入已欠费SIM卡进行呼出
3) 射频器件损坏或无信号区域插入有效SIM卡呼出
4) 网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)
5) 网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字
22:测试点(保温杯/电梯等)
功能:按钮功能,开门(运行中按开门键不开门),关门,电梯内按钮功能(电梯按键在按下时是否点亮,按错楼层是否可以取消);上升,下降(每一层申请是否有效,是否可以正常停靠),超载时是否会忽略其它楼层的上行和下行申请,电梯的两边按钮是否都可以使用;电梯内电话、灯光等
性能:反应时间、关门时间、速度(是否造成人体不适)
界面:电梯内部是否美观,电梯内部是否配有扶手,电梯的样式是什么样子的
易用: 使用的寿命,是否能够使用几年不晃动,是否方便各种客户接收,是否能够接受电梯不是品牌。
安全:乘坐10个人的话会不会不稳导致事故发生,载物的话会不会晃动,电梯的揽绳是否定期更换,电梯的紧急联系电话是否能够打的通
保温杯的测试用例1、功能测试:能否装水、除了装水?、能否装其他液体,比如可乐,酒精能装多少ML的水杯子是否有刻度表杯子能否泡茶、跑咖啡杯子是否能放冰箱、做冰块杯子的容量是否于需求一致
?2、性能测试:能否装100度的开水 (泡茶),能否装0度冰水,装满水,长时间放置是否漏水(7*24),能否使用的最大的次数(漏水),杯子内壁上的涂料是否容易脱落。,杯子上的颜色是否容易褪色或者脱落,掉在地上不易摔碎,如果是有盖子的,?盖子拧多紧不会漏水
3、界面测试:?外观好不好看,什么颜色,杯子的形状是怎么样的。杯子的图案是否合理,杯子外观是否简单,美观,杯子大小是否一致,杯子的材质是否与需求一致
?4、安全测试:制作杯子的材料,是否有毒,放微波炉里转的时候,是否会熔化。,杯子盛放热水是否释放难闻气味(毒味),杯子是否容易滋生细菌,杯子内壁上的材料,是否会溶解到水中,装进不同液体,是否会有化学反应。
5、易用测试:?杯子是否容易烫手,杯子是否好端,好拿,杯子的水是否容易喝到,杯子是否有防滑措施,是否能接受杯子的广告内容与图案。
23:常见的状态码
200:请求已正常处理
301:资源的uri已更新
302:资源的URI已临时定位到其他位置了
403:不允许访问那个资源
404:服务器上没有请求的资源
500:内部资源出故障了
503:该状态码表明服务器暂时处于超负载或正在停机维护,现在无法处理请求。
24:session和cookie的区别
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过3K,很多浏览器都限制一个站点最多保存20个cookie。
5、可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。
25:如何通过postman实现自动化
接口自动化测试:Newman 是 Postman 推出的一个 nodejs 库,Newman 可以方便地运行和测试集合,并用之构造接口自动化测试和持续集成
简介:
1:安装和配置
安装node.js
验证:node.js是否安装成功
node -v
安装newman:npm install -g newman
配置newman环境:
验证:newman是否安装成功
newman -v
2:newman的命令
常见的参数
-e: 使用环境变量
-g: 使用全局变量
-d: 使用csv,text,json数据驱动
-n:循环次数
-r :cli,html,json,junit --reporter-html-export
命令:
newman run C:\Users\jack\Desktop\postman_collection.json
生成测试报告
首先下载html:npm install -g newman-reporter-html
newman run 自己的路径 -r html --reporter-html?export report123.html
3:结合Jenkins进行持续集成
|