赞
踩
1、get和post的区别?
http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议
Get会把参数附在url之后,⽤?分割,&连接不同参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据
Get产⽣⼀个tcp数据包,post产⽣两个tcp数据包
Get请求,浏览器会把http header和data⼀起发送,服务器返回200响应码
Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码
Post的安全性⽐get⾼,如果浏览器缓存了,会把get参数留在缓存中,⽤户可以看到参数信息
2、post请求的四种参数形式是什么?
Application/x-www-form-urlencoded:将参数以⼀组键对值的⽅式发送
Multipart/form-data:⽀持单组和多组⽂件上传
Application/json:根据后端接⼝的定义⽀持数据类型
Text/xml
3、http状态码302, 403, 503分别代表什么?
302:临时重定向到某⼀个页⾯,⽐如要登录之后才能进⼊的页⾯,他⾸先会临时重定向到登录界⾯
403:权限不够 服务器理解客服端的请求,但拒绝此请求
503:服务端⽬前⽆法使⽤,过载或者维护中
500:服务端异常
404:请求失败,请求所希望得到的资源未被在服务器上发现
401:请求⾝份验证
1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理
2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。
3XX系列:代表需要客户端采取进⼀步的操作才能完成请求,这些状态码⽤来重定向,后续的请求地址(重定向⽬标)在本次响应的
Location 域中指明。这系列中最常见的有301、302状态码。
4XX系列:表⽰请求错误。代表了客户端看起来可能发⽣了错误,妨碍了服务器的处理。常见有:401、404状态码。
5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发⽣,也有可能是服务器意识到以当前的软硬件资源⽆法完成对请求的处理。常见有500、503状态码。
4、自动化测试怎么校验结果?
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对。
5、接口测试如何设计用例?
主要从四个方面来设计接口用例:功能,业务逻辑,异常,安全。
功能:是否符合需求
1)从用户角度出发看接口能否实现业务需求,功能是否正常;
2)功能是否按照接口文档实现:
举例:比如博客园添加随笔,需要登录才能添加。也就是业务要求不支持游客添加随笔功能,如果设计一个没有登录的用户,然后去测试添加随笔接口,结果接口能添加到随笔,说明功能不正常,不符合需求和接口文档描述。
业务逻辑:是否依赖业务
1)接口实现逻辑:
2)业务逻辑覆盖(语句/条件/分支/判定/….);
举例:该接口调用之前,需要调用登录接口,如果不登录也能请求数据,不符合业务逻辑。
异常:参数异常和数据异常
1)参数异常:关键字参数,参数为空,多,少参数,错误参数;
2)数据异常:关键字数据,数据为空,长度不一致,错误数据:
举例:不管数据异常还是参数异常,测试点差不多,一个参数有kev和valuekev表示参数,value表示数据。第一看看参数和数据能不能支持关键字,例如Java中的保留关键字等等;第二就是参数和数据都为空,看看是否做了判断:第三,参数多和少,例如有两个参数的接口,需要设计一个包含三个参数的用例,一个只有一个参数的用例。数据长度不一致,例如设计很长的字符串是否支持,因为数据库创建表过程都设置好了每个字段的长度。输入错误的参数和数据,如故意输错单词等等。
安全测试用例设计:
1)cookie:有cookie才能获取数据,如果不带cookie还有信息返回,说明有问题
2)header:正常接口带header信息,删除header看是否能够返回数据
3)唯一识别码:app手机识别码,一般是唯一的;
4)文本输入框sal注入和xss攻击。
6、接口自动化测试的流程?
基本的接口功能自动化测试流程为:需求分析–>用例设计–>脚本开发–>测试执行–>结果分析
7、⾃动化使⽤的测试框架是什么?简述⾃动化框架的设计、维护
1/测试框架:python+unittest+requests+ddt+openpyxl+pymysql+logging
测试框架:
python:⼊门简单,语法简洁
unittest :定义⼀个测试⽤例类,具体的⽅法来维护测试⽤例的⽣命周期,测试场景⾏为,测试⽤例 前置场景,⾏为,期望结果,实际结果,断⾔⽅法,Setup teardown⽅法
requests:接⼝调⽤ ,⽀持http请求的库,API 简洁,提供不同的http请求⽅法,⽀持session,cookies,
ddt :数据驱动,ddt 类装饰器,data 测试⽅法装饰器 unpack解包可迭代的数据类型
普通⽤户,数据库,配置⽂件—(基础数据)
openpyxl:数据管理 excel管理数据,使⽤openpyxl模块来进⾏excel数据的读和写(excle,csv, json, yaml, txt都可以管理测试数据)
pymysql:数据库交互,数据校验
eval,json:数据格式的转换 Eval将python⽀持的格式转换成对应的格式
logging:⽇志处理, 统⼀⽇志输出格式,渠道,级别,执⾏结果的记录,便于定位问题
jenkins:持续集成
2/框架设计思路:数据驱动+结构分层(可读性,可维护性,可扩展性)
数据驱动:将维护数据与代码分离,接⼝调⽤⾏为⼀致,针对不同的参数组合驱动不同的测试场景,减少代码冗余
结构分层:数据层+⽤例层+逻辑层
数据层:测试数据的⽀撑 data.xls
⽤例层:⽤例的执⾏ test_register.py test_recharge.py
逻辑层:公⽤的⽅法的封装与提取 doexcle.py do_mysql.py http_requests.py logger.py等模块
3/框架设计步骤:
准备测试数据: EXCEL表准备测试⽤例—excel数据的读取—参数值的替换
发起请求:请求⽅法(get/post⽅法进⾏封装—URL的拼接(不同—参数转化为字典
拿到请求的返回值:解析返回值code,status,msg信息
断⾔
好处:
1、⾃动化测试⽤例和⼿⼯测试⽤例的完美结合,减少重复⼯作
2、配置灵活,可以⾃主切换测试环境,执⾏测试⽤例
3、常⽤功能进⾏封装,逻辑清晰,易于维护
4、统⼀执⾏⼊⼝,管理测试⽤例集:
run.py模块通过模糊查找来选择需要执⾏的测试⽤例
5、持续集成,定时构建,快速反馈、
8、具体的在这个项⽬中⾃动化怎么应⽤到实际的,您对⾃动化结果的分析
完成所有的⾃动化测试框架的设计和实现后,进⾏接⼝测试,然后集成到jenkins,配置定时执⾏,⽣成html报表,查看测试通过率,查看接⼝的功能
每次发版时,进⾏回归测试,新功能开发未提测前
9、做好测试计划的关键是什么?
明确测试⽬的,增强测试计划的实⽤性,保证测试⽤例的实⽤性和覆盖率,完全需求⽂档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等
10、测试⼯程师职业发展路线图
功能测试 ——接⼝测试–⾃动化测试 --测试开发–测试架构师
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。