postman与jmeter的API测试流程
\1.先熟悉接口文档以及各个接口的业务关系。包括关联、接口地址,请求方式,鉴权方式,入参和出参等。
\2. 然后编写好测试用例 。
\3. 在postman 先建好 url 不同的环境变量 。
\4. 根据接口用例所属的模块新建集合管理 。
\5. 在集合中不同模块下录入测试用例 。
\6. 录入测试用例的时候根据预期结果在 tests 页签中增加断言 。
\7. 导出通过 Newman+Jenkins 去运行 。
2.jmeter工具的使用流程:
\1.先熟悉接口文档以及各个接口的业务关系。包括关联、接口地址,请求方式,鉴权方式,入参和出参等。
\2. 然后编写好测试用例 。
\3. 先创建线程组(设置线程数,循环次数永远);
\4. 再配置信息创建httpcookie管理器、http信息头管理器、http请求默认值、用户定义的变量。
\5. 在取样器中添加http请求和监听器。
\6.添加后置处理器比如jsonpath提取器进行关联。
\7.添加响应断言或json进行断言。
\8.使用ant插件批量运行。
——————————————————————————————————————————
3.项目接口的测试流程是什么?
第一,先熟悉接口文档以及各个接口的业务关系。包括关联、接口地址,请求方式,鉴权方式,入参和出参等。
第二,编写测试点并进行评审。
测试点的测试策略:
正例
反例:
1.鉴权反例:鉴权码为空、错误、过期
2.参数反例:参数为空,类型异常,长度异常
3.业务的状体码异常
其它反例场景:接口黑名单、调用次数限制、特殊分页(0,第一页,中间页,尾页)
4.兼容性的用例:版本的兼容、多端的兼容。
4.平时在执行接口测试的时候报异常要注意哪些点?
首先看请求参数是否写错,然后看网络异常、未部署好、防火墙或者网络代理**;是否是要鉴权和加密。是否这个接口有关联关系,比如注册等添加数据的接口参数是否应该考虑到动态参数。还会考虑幂等性(比如删除同一个部件后不能重复删除;还要进行深度测试,数据库的增删改查接口要和数据对应一致;
5.性能测试流程。
1.一般肯定先进行性能需求分析(确定测试指标值,测试环境,性能测试团队)
2.测试方案的制定(首次评审方案时一定要注意测试指标值有没有变化,测试场景的覆盖率,测试环境,风险和时间计划)
3.测试前需要的准备阶段(要准备测试环境的数据,脚本的准备还有一个监控的准备)
4.开始执行阶段(把脚本或者说场景执行不达标时定位的具体瓶颈记录下来,然后调优)
5.自然编写测试报告(记录测试结果,进行最后的二次评审)
6.总结调优手段,经验
6.性能测试的术语都有哪些?
只有当平均响应时间和90%时间相差不大的时候,表示系统波动不大比较稳定;
编写测试方案时一定要注意性能指标的一致性比如最主要的TPS、平均响应时间、并发用户数以及未来三年的并发用户数、失败率尽量低于0.01%;还有redis使用要看它的命中率,内存空闲率高于5%(包括本身是否泄漏),连接数是否会爆满;系统本身的服务器资源CPU/IO方面的使用情况;
需求的确定你可以通过判断系统上限,或者和查看业务日志看什么业务访问量大进行评估。
所有的性能场景列表如下:顺序
基准测试:
单交易负载测试:对单个接口逐步添加用户,看拐点在哪里(拐点自然是用户数)
混合负载测试:对多个接口逐步添加用户,看拐点在哪里(拐点自然是用户数)
混合压力测试:拿到单接口压力下的拐点值并发上去,比如拐点是100个用户,再增加压力;?
可恢复性测试:
容量测试:
可扩展性测试:
稳定性测试:
浪涌测试:这几个都是服务器运行过程中,集群服务有几台机器出现宕机,剩余机器是否能继续支撑起用户的访问量。当然了,实际工作比较灵活,根据情况来创造压测方式的场景名字也行。
jmeter为了防止压力机出现瓶颈,所以才部署分布式,通过修改jmeter.properies文件进行部署方,看是部署到linux还是windos上去。用jmeter -n -t 脚本进行linux的压测;
性能方面的监控问题
linux系统监控的命令top 、netstat端口命令 ss有关TCP连接
top 中的load avg数值的意思,
top - H - p 11111 查看进程pid下面的子线的运行情况
查看服务器cpu核数和内存大小
我们cpu信息都是放在cpuinfo里面的
free - m查看内存大小
先要设置慢查询的耗时标准,然后具体通过工具压测,在后台监控慢查询日志去定位mysql数据库哪条sql语句执行慢;
通过命令或者数据库监控工具来查看数据库的连接数:show status like "Threads%";
还要知道在linux中如何配置java环境:在/etc/profile的最下面添加环境配置,同时使用source /etc/profile使其生效
linux如何搜索某个文件或目录:find / -name "mysql"
linux资源监控看会不会搭建gtaph.
常见的性能问题:
数据库语句优化、接口业务逻辑优化、连接数量配置参数优化、中间件redis命中率优化、缓存穿透优化、负载均衡优化
7.怎么一步步搭建api框架的?
答案:前提是使用pytest搭建测试框架
1.先建一个统一管理pytest插件的requirements.txt文件.然后安装这些第三方库(注意重复安装)
2.再建一个项目根目录的pytest.ini文件配置各种参数和环境的各种基础路径base_url,便于主函数或者命令行在根目录下能找到用例并执行(注意编码格式)
3.创建装饰器又叫全局性夹具conftest.py用于用例之前的操作和用例之后的操作,并设置装饰器的作用域和是否自动执行操作(不需要导包就能直接用),当有多个时,作用域是同级或者子级;而且它同样的调用方式,自动情况下外层优先级高于内层;手动的话谁先调用谁优先级高。这个时候知道运行过程:先找pyest.ini-fixture-testcases;还可以控制执行顺序@pytest.mark.run(order=1)等。
4.先官网下载allure,下载后解压并配置path环境变量路径,开始对应新建临时报告文件夹temps和reports报告文件夹。包含bin命令、config配置文件、lib的jar包、pulgins插件;然后重启后在dos和pycharm窗口分别验证:allure --version
5.进行冒测一个用例,为方便解耦合,并直接用assert断言;先运行临时报告;
addopts = --alluredir = ./ temps --clean --alluredir;然后再用allure generate ./temps -o ./reports --clean
6.验证框架通过基本测试,补充testcases文件夹,logs,datas和commons四个包;
7.安装pyyaml,开始把测试用例的数据进行yaml文件管理(既然涉及文件数据的操作,自然要封装一个读写文件的yaml类);并在测试用例上添加参数化装饰器@pytest.mark.parameties实现接口数据驱动测试;
8.关联的时候因为要有一个存放中间变量(还是一种数据)的yaml文件,所以也要再定义一个清空读写等方法。涉及提取字符串的正则(re.search)和提取字典格式的jsonpath提取(和jmeter/postman相通)$获取根节点
9.为了提高代码的复用性,封装接口的统一请求、校验入参格式的方法
8.怎么搭建UI框架的?
答案:前提是使用pytest搭建测试框架
1.先建一个统一管理pytest插件的requirements.txt文件.然后安装这些第三方库(注意重复安装)
2.再建一个项目根目录的pytest.ini文件配置各种参数和环境的各种基础路径base_url,便于主函数或者命令行在根目录下能找到用例并执行(注意编码格式)
3.创建装饰器又叫全局性夹具conftest.py用于用例之前的操作和用例之后的操作,并设置装饰器的作用域和是否自动执行操作(不需要导包就能直接用),当有多个时,作用域是同级或者子级;而且它同样的调用方式,自动情况下外层优先级高于内层;手动的话谁先调用谁优先级高。这个时候知道运行过程:先找pyest.ini-fixture-testcases;还可以控制执行顺序@pytest.mark.run(order=1)等。三种夹具:前端未登录夹具,前端已登录的夹具,后端已登录的夹具。
4.先官网下载allure,下载后解压并配置path环境变量路径,开始对应新建临时报告文件夹temps和reports报告文件夹。包含bin命令、config配置文件、lib的jar包、pulgins插件;然后重启后在dos和pycharm窗口分别验证:allure --version
addopts = --alluredir = ./ temps --clean --alluredir;然后再用allure generate ./temps -o ./reports --clean
6.验证框架通过基本测试,补充testcases文件夹,logs,datas和commons四个包;
前六步一样。
7.安装xlrd=1.2.0,有内置的打开excel文件open_workbook方法并在测试用例上添加参数化装饰器@pytest.mark.parameties实现接口数据驱动测试;用列表实现的。
8.中间保存一个浏览器首次访问后保存的cookies(实际上是session_id)
posted on 2023-05-27 18:43 cenglinjinran 阅读(58) 评论(0) 编辑 收藏 举报