技术标签: python 自动化测试 测试 压力测试 软件测试 单元测试 软件测试工程师 测试工程师
l http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议
l Get会把参数附在url之后,用?分割,&连接不同参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据
l Get产生一个tcp数据包,post产生两个tcp数据包
l Get请求,浏览器会把http header和data一起发送,服务器返回200响应码
l Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码
l Post的安全性比get高,如果浏览器缓存了,会把get参数留在缓存中,用户可以看到参数信息
Application/x-www-form-urlencoded:将参数以一组键对值的方式发送
Multipart/form-data:支持单组和多组文件上传
Application/json:根据后端接口的定义支持数据类型
Text/xml
302:临时重定向到某一个页面,比如要登录之后才能进入的页面,他首先会临时重定向到登录界面
403:权限不够 服务器理解客服端的请求,但拒绝此请求
503:服务端目前无法使用,过载或者维护中
500:服务端异常
404:请求失败,请求所希望得到的资源未被在服务器上发现
401:请求身份验证
1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理
2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。
3XX系列:代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最常见的有301、302状态码。
4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。
5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503状态码。
1/ 单独调用第三方服务,查看三方接口返回的status,code,msg,看是否能支持正常服务
2/ 在自己的应用中mock第三方服务,来调用自己的接口,看能否正常工作,将结果反馈给第三方
3/ 配置日志级别在debug级别时,添加第三方请求过程的日志,查看入参,响应来追踪问题
把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使用setattr()函数),下一个请求去调用这个类属性
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对
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、持续集成,定时构建,快速反馈
完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到jenkins,配置定时执行,生成html报表,查看测试通过率,查看接口的功能
每次发版时,进行回归测试,新功能开发未提测前
明确测试目的,增强测试计划的实用性,保证测试用例的实用性和覆盖率,完全需求文档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等
另外,欢迎加入软件测试技术交流群 313782132 ~进群可领取软件测试资料以及群内测试大牛解惑!
测试工程师职业发展路线图
功能测试 ——接口测试–自动化测试 --测试开发–测试架构师
加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。
资源不错就给个推荐吧~
文章浏览阅读256次。不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题,例如:请求来源(身份)是否合法?请求参数被篡改?请求的唯一性(不可复制)为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证。案列分析我们通过给某 [移动端..._apikey、apisecret使用综合案例
文章浏览阅读1.9k次。CGAL中2D Arrangements学习笔记转载自:http://hi.baidu.com/lihao102/blog/item/33015f63b69b3b6a0c33fab6.html 2D Arrangement类型简介:给定一组平面曲线,2D Arrangement能够将这组曲线所组成的图形细分成顶点、边和面这些最基本的几何单位。其中给定的曲线能够相互相交,甚至能自_cgal arrangements
文章浏览阅读144次。算法-Unique Paths不同路径1、题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?2、题目分析经典的动态规划模板题,简单难度dp[i] [j]表示从(0,0)位置走到(i,j)位置的路径数量初始状态是第一列和第一行,因为机器人只会向下和向右走,所以只有一种情况动态规划方程 dp[i] [j] = _unique paths
文章浏览阅读1k次,点赞39次,收藏6次。搜索商品详情数据、销量、价格、库存、标题、sku等,首先需要注册一个阿里巴巴的账号并开通相应的API权限。然后,可以使用Java编程语言和requests库来实现数据的获取。替换为你自己的阿里巴巴账号的App Key和App Secret。函数中使用这个Token来搜索商品的详细信息。函数来获取Access Token,然后在。在这个示例中,我们首先定义了一个。
文章浏览阅读451次。电动车销售平台主要功能模块包括电动车资讯管理、首页、站点管理(轮播图、公告栏、)用户管理(管理员、注册用户)、内容管理(留言板、论坛分类、购车资讯、资讯分类列表)商城管理(商城列表、分类列表、订单列表)注册用户统计、留言板、公告栏、购车资讯,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取Mysql作为后台数据的主要存储单元,采用springboot框架、Java技术、进行业务系统的编码及其开发,实现了本系统的全部功能。_电瓶车销售网站源码
文章浏览阅读705次。库头文件 #include _default_random_engine
文章浏览阅读2.6k次。在建模时,我要用一种新介电常数的材料,设置时我只设置了介电常数,其他都默认,损耗接角正切我也默认是0,请问损耗角正切对结果影响大不大,应该怎么设置?谢!我个人认为,损耗正切角一般比较小,在10的-4次方量级。只会影响仿真结果的损耗,而不会影响驻波等参数,所以在初步仿真或对损耗要求不严的应用中可以设为0。与之类似的还有Magnetic loss tangent(磁损耗角正切)和deltH(共振线宽)..._cst中材料损耗正切值怎么设置
文章浏览阅读699次,点赞20次,收藏16次。本设计的开发是基于B/S结构,采用ASP.NET程序设计语言及SQL Server 2000数据库进行开发;论文首先阐述了基于B/S模式的服装连锁管理系统的开发,并对该系统进行了较详细的需求分析;然后探讨了该系统需要实现的设计方案,该系统主要包括总店系统和分店系统两个方面,总店系统主要用于对商品、各个分店等的管理,各个分店系统相互独立,主要用于对各分店的商品的销售及管理;最后,在测试与分析过程中,该系统表现出了运行稳定、可靠和实用等特性,具有一定的实用价值。
文章浏览阅读58次。Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+Vue+Pychram社区版。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。2.IDE环境:Python和Python 社区版都可以。Django + Vue +Python+Mysql 等等组成,B/S模式等等。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。1. 后端:Python、Vue、Django、Mysql。_python3.8+vue开发
文章浏览阅读470次。注:本文档基于opensll v1.1.1不支持sm2withSM3 证书。_openssl 1.1.1
文章浏览阅读6.9k次。kuberentes 离线丝滑安装为了让kubernetes安装与集群节点管理更丝滑,这次我们是花了大功夫。这次做了很多非常大的更新,并经过充分测试与bug修复让其稳定。力争把这个简单的事做到极致。剥离定制kubeam功能到sealos中之前定制kubeadm代码实现的100年证书功能和localLB,已经全部剥离到sealos中,现在已经是完完全全原生的kubernetes了。为..._kube1.18.14.tar.gz 下载
文章浏览阅读1.3k次,点赞6次,收藏10次。打开dialog会把table选中项清除表格部分代码:<el-table ref="multipleTable" :data=" tableList.slice((currentPage - 1) * pageSize, currentPage * pageSize) " tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChang_vue 打开dialog会把table选中项清除