- 博客(27)
- 收藏
- 关注
原创 Python+Pytest+Yaml+Allure数据参数化(DDT)数据驱动(一)
我们用的是pytest框架所以相对来说是简单的,我们通过pytest框架来实现,而框架中要数据驱动用到我们装饰器就好啦@pytest.mark.parametrize(参数名,参数数据)那我们这些都提取出来,我们可以通过yaml文件来进行操作,或者说我们需要有一个存放数据的地方excel 、yaml 也可以数据库这些都是可以的。[{k:v},{k:v},{k:v}]列表套字典------推荐,用的比较多。那我们的参数数据要什么数据格式?第二个也是 我们改了密码 期望是密码错误 实际返回的也是密码错误。
2024-11-28 17:30:12
841
3
原创 性能测试核心-性能需求、执行、结果分析
我们是用接口测试工具 反复对这个接口进行多次测试 取响应时间的平均值 还是说模拟真实环境的用户数量 并发对这个接口进行测试 来响应的取平均值?所以我们要学会梳理需求 性能测试是不能脱离实际需求的,肯定需要一种场景,在哪一方面性能需要,我们在执行测试的时候,都会涉及到具体的业务场景。这里注意我们很多小伙伴会用到查看结果数 这个功能是调试阶段使用的,在证实测试的时候要禁用掉查看结果数。app首屏的加载广告-------那这个广告信息是从后端接口拉取的(那我们的。是不是也出来了-响应时间的要求-1.5秒内加载。
2024-11-27 19:24:42
600
原创 浅说性能测试-响应时间 并发量 资源占用率 吞吐量
那如果我们一下来了10个人,(酒店相当于我们的系统 )来10个人酒店肯定能处理,2个人处理 8个人等待 过了3分钟又来了10个人,那这个时候我们吞吐量是没有变化的还是2/5min,后来的10个人的空间可以站着继续等待,那又过了5分钟又来了10个人 那这个时候酒店已经慢慢装不下了,但是我们的前台接待也是人啊 人多氧气就不够了,后面人也进不来酒店了。比如我们的图片大小是1M(1兆 ),而我们的网络兴许就是10M或者20兆这样的, 现在有一个人在访问我们的系统 我们照片也经过网络在传递。所以性能问题就来了。
2024-11-27 17:09:21
717
原创 pyhton+yaml+pytest+allure框架封装-全局变量渲染
那我们上一篇说到 我们封装好了全局变量后需要从上一个接口中的值存入到全局变量中,再从全局变量中获取值给到下一个接口。那我们如果接口中多个值 我们还得一个一个写 真的很麻烦 这时候就用到了我们的变量渲染。我们可以看到 name传了值 而age没有值 所以也就不会渲染age的值。把请求数据全部进行渲染一遍 要传两个值 一个是请求数据,一个是全局变量。我们在日常测试中 会有一个接口中多个值的情况 比如这种。先定义一个方法,渲染的初始值,对应的变量。我们先创建一个文件夹存放我们的工具类。生成一个变量渲染的文件。
2024-11-26 19:59:46
1180
原创 pyhton+yaml+pytest+allure框架封装-全局变量接口关联
我们要实现关联,所以我们要进行封装,通过我们对应的相应数据 进行数据提取的方法。在关键字中写入发送请求(前两篇有写过,可以往前翻)我们在发送请求之后的相应数据进行存储操作,我们导入刚才声明的类调用我们刚才的方法来存储一下,然后拿到我们的数据(对象.方法传入我们返回的值)后变成json格式。封装好了以后我们要有对应的改动 在测试用例 就不能通过jsonpath而是要通过关键字key 来调用我们对应的方法了。然后我们把当前的响应数据存储一下 ,我们先导入我们之前的全局变量。4、显示我们对应的全局变量。
2024-11-26 17:41:53
829
原创 python+pytest+allure利用fix实现接口关联
如果每次都要写登陆接口 这样会产生大量冗余的代码 所以我们就可以定一个全局变量 就不需要每次都写 直接调用就可以。其实看原来的token传值 我们创建一个一样名字的变量赋值给它就好啦 这样我们就不需要来回改动原来的token值。我们上一步已经设置了全局变量(登陆的token),那接下来的每个接口都需要这个token值。我们在日常工作中如果有一个登陆接口 在查看别的b接口 我们就要频繁的 进行登陆操作。然后我们把新的变量名字传给原来的token就好啦~然后我们就可以把我们登陆的代码直接就放在里面。
2024-11-25 21:01:02
615
原创 关键字方法封装引用
这里可以集合我们的allure,可以添加@allure.step,这样在自动化执行的时候 报告可以直接捕捉响应的执行信息,让测试报告更详细。我们response有很多对应的数据 我们post请求 默认大概有13个对应的参数 那我们传入不定长参数。我们就应该这样导入(在导入写请求的文件,不是关键字的文件)千万别混了。接下来我们就可以发送请求了 请求还是要导入我们的requests。这里要注意 导入的是当前项目(根目录)下的目录中的文件。文件 存放关键字的文件 常用的接口请求过程的操作。这里是面向对象的思路。
2024-11-22 19:57:16
666
原创 Python+Pytest+Allure之线性代码
必须以Test开头,并且不能有init(构造)的方法 如(class。1、模块名必须以_test开头或者_test结尾 如(我们在学习pytest之前要知道一些小知识 比如。3、测试方法必须以test开头 如(def。如果我们断言失败的话就会如下图提示。Allure:就是生成报告。然后来开始简单写一下代码。pytest的命名规则。) -----方法。) -----文件。) -----类。
2024-11-22 16:35:30
277
原创 mac安装Pytest、Allure、brew
https://github.com/allure-framework/allure2/releases或者下载allure命令:brew install allure。按回车后,根据提示操作:输入镜像序号 --> 输入Y,回车等待brew安装完成即可。安装allure 命令:brew install allure。命令:pip install allure-pytest。好吧 那我们在安装allure之前 我们先安装brew。查看版本命令:allure --version。好啦 安装就捡到这里啦。
2024-11-21 18:20:47
981
原创 python接口自动化之加密处理及代码实现
3、加密的时候要使用我们的公钥 , 创建对应一个公钥的方法进行编码,编码格式之前做一个加密处理 ,然后加密方法调用,再转成我们的base64格式 ,最后再把数据变成utf-8。2、如果开发说 我们的加密的方式很简单 把加密的方式告诉你 但是写代码又写不出来 那接下来我们可以用一些加密工具来处理。对称加密(加密,解密 密钥是一样的),加密和解密使用的是同一把钥匙,即:使用相同的密钥对同一密码进行加密和解密。3、如果代码能力还可以的情况下 要知道那些数据是进行加密的 加密算法的选择 密钥管理等方面。
2024-11-20 17:08:00
1155
原创 Python 接口自动化之接口关联
那是不是就是 id?那购物车列表 id是不是就对应的查询接口,所以我们在提交订单那个步骤里再加上 查询购物车列表id。3、提交订单:token,商品规格信息,地址(从详情页提交,从购物车提交)购物车列表id、地址列表 id、支付 id。要确定是谁来做这件事情 比如 A 账号还是 B 账号,它就是一个请求数据,请求数据在哪看接口文档,大部分是在请求头。接口就是对数据库进行操作,数据库有增删改查 ,接口也是一样的道理 也有增删改查的接口。在正常的工作中一般情况下 是走不到支付的 我这里没有写实际的支付哦~
2024-11-19 20:19:48
609
原创 Python 接口自动化Jsonpath 应用及断言
首先我们要知道,使用 jsonpath 之前我们要有一个对应的数据去进行对应的操作,比如我们工作中会得到的响应数据,基于我们的响应数据 我们要对应的提取 比如 token msg.....所以我们就会用到它 jsonpath。我们可以看见是个 py 文件, 我们import jsonpath是导入我们的模块,我们需要通过这个模块来调用这个方法,我们调用方法是 jsonpath.jsonpath。提取的数据对象就是我们的响应数据,提取的表达式 jsonpath 是以$开始。
2024-11-15 20:54:13
848
原创 接口自动化requests 库应用(三)
比如:我们登录了一个网站,所以我们在做接口请求时,要一个对象从头干到尾,不然就判定不是同一个用户。第二:然后在 requests 用一个对象从头做到尾,我们可以通过 session 来会话保持,这里需要知道 session 是一个类,通过 session 类来进行实例化一个对象,我们可以通过这个对象来发送我们的请求。第三:我们需要登录才能获取对应的信息,如果测试过程中不是通过 token 来进行鉴权,也可以通过登录的状态码来判断,当然看每个公司的具体业务。第一:我们还是要导入我们 requests 库。
2024-11-15 15:15:12
462
原创 接口自动化requests 库应用(二)
这里要说明一下 请求数据支持什么格式是有开发决定的,有可能是一种,也有可能是多种,就是一个判断而已。我们刚才说到application/x-www-form-urlencoded是data,那 json 格式就直接改成 json 传参就好啦。因为在日常测试中data默认是什么格式传递的 这个很重要,所以我们把请求数据打印出来看看。如果data 传递 数据格式是 json , 那我们就可以设置对应的请求头。那 dumps 是什么呢 它的作用是是把我们的字典转换成字符串。那如果是 json 格式的呢?
2024-11-13 18:48:08
374
原创 接口自动化requests 库应用(一)
那我们代码跑起来知道了返回结果 那我们会保存返回结果,看是不是我们想要的,然后我们打印响应结果进行比对,这才是做接口测试的目的。verity:true/false 默认为 true 如果是 https 会验证我们 ssl 证书,如果证书不通过就不会让你发送请求,如果不希望去验证证书的话就false。因为我下载的是比较新的版本 所以在这里可以直接下载相关的软件包,就像绿色标明的那样 直接点击就可以下载。如果我们 get 请求有公共参数 可以直接写在 url 当中,也可以写在params中。
2024-11-13 00:58:34
457
原创 接口测试JMeter使用教程 (三)---接口关联
可以看到 token 在 data 里,上一篇简单说了一下 json path 那我们就用起来$.data.token 让我们来试一下。我们在测试过程中一定会有这种情况,上一个接口要抓取数据传给下一个接口,也就是上一个接口的相应数据做为下一个接口的请求数据。这怎么商品 id 有误?我们来进行第二步 把 token 传给下一个接口(也就是加入购物车的操作)然后我们在接口跑通了以后 千万别忘了 要到我们实际的页面看一下是否添加成功。然后我们运行一下 看看调试取样器中是否有 token 获取到了没有呢?
2024-11-12 22:16:49
593
原创 接口测试JMeter使用教程 (二)---数据驱动
这个时候我们把断言打开 填写上我们的预期结果和要比对的结果 我这个因为是登录接口 所以只有登录成功 code 才会返回 0 我也就直接判断了 code 是否为 0。在日常测试中我们测试一个接口 其实就是参数不一样,期望结果一样,把这些不一样的数据提取出来统一管理 这样下次就可以统一使用 那我们就会用到数据驱动。在检查一下我们的用例 发现是逗号的问题 我用了中文的逗号,现在改回英文再试一下。那我们就会用到下一个。结果都通过了,是因为我的用例写的预置结果和实际的返回结果一致 所以没有触发 json 断言。
2024-11-12 20:20:19
542
原创 接口测试JMeter使用教程 (一)---核心组件
创建线程组创建 http 请求查看结果树先来让我们创建一个线程组然后我们创建一个 http 请求如果是刚接触的小伙伴一定会问 路径那里是怎么填写的呢 对应百度的接口是什么样子呢点击进入到百度的首页 搜索一个你想搜索的内容 这里我搜索的是“你好”
2024-11-12 17:50:30
977
原创 mac 电脑postman 安装
第二步登录成功后我们就可以创建属于自己的文件夹啦。第一步 下载 postman 官网地址。,按照自己的版本下载哦。
2024-11-07 23:16:49
548
原创 编写接口测试用例方法
绕过验证:比如你购买了一个键盘是100 块,那在测试这个接口的时候 就给价格改价150块看看行不行,当然你也可以反向操作一下,把价钱改成 90 元,看看能不能成功 嘻嘻顺便找一下那十块钱哪里去了~参数是否加密:这个大家都能遇到哦~我们的所有app都有账号密码,我们的登录接口账号和密码是否加密,如果不加密的话被别人拦截了你的请求是不是信息都泄露了,如果加密了看看是否容易破解。这个就是每个公司都不一样,做的业务也不一样,一定要根据自己公司的业务逻辑来编写测试用例,其实本质上跟功能的测试用例大同小异。
2024-11-07 22:26:00
247
原创 mac 安装好jmeter如何在终端快速启动jmeter
mac电脑,像这样配置了环境变量,但是下次重启电脑之后,jmeter的环境变量就失效了。在下载 jmeter 解压后有一个文件夹 看看那个文件夹在哪里 然后把文件夹拖进终端里就可以看到路径啦 接下来就复制路径就好啦。明明已经配置好了 但是要进到终端敲命令进入jmster bin文件中 然后sh jmeter,简直太麻烦啦!这样就好啦~接下来让我们试一下 在终端直接输入 jmeter 会不会直接启动呢?直接在终端输入 jmeter 就直接启动呢?这时候有小伙伴又要问了 怎么找到自己的 jmeter 路径?
2024-11-07 19:35:45
1111
1
原创 2024 mac 安装 jmeter及JDK 配置文件教程
到下载的 jmeter解压后的文件中 打开 bin 文件夹 进入到bin目录下,通过。然后可以看到我下载的是jmeter5.6版本,对应jdk1.8 然后就进行解压。按键“esc”返回命令行模式,输入“:wq + 回车”。在macOS或Linux系统,可以使用终端命令如。(“=”后写你的jdk文件夹path)接下来我们就可以试一下配置环境是否生效。最后一步就可以启动 jmeter 啦!我的电脑因为是新买的 就没有安装。点击键盘“i”,进入编辑模式。这样就说明 JDK 配置好啦。然后退出vim编辑器,输入。
2024-11-06 19:49:02
1244
1
原创 mac抓包工具charles安装并抓取手机端数据
保持电脑的网络和手机的网络是同一个,打开手机-设置-无线局域网-设置-配置代理-点击手动填写ip和端口号。这里 192.168.1.61填写到服务器中, 8888是端口号,填写后点击储存。设置-通用-关于本机-证书信任设置-把证书进行信任设置(打开开关就好啦)小伙伴可以发现 现在做了这些还是不能抓包 所以接下来我们要安装证书。手机浏览器输入红框内地址 chls.pro/ssl 点击允许安装证书。双击打开 以上就安装完啦,但是要抓取手机端的数据还需要配置。端口号的话可以自己设置 port中自己设置就好啦。
2024-09-09 17:19:45
911
原创 mac谷歌chrome不能打开网页的问题
Chrome的默认搜索引擎设置为google,如果小伙伴有VPN的话链接vpn也是一个解决办法。但是像我一样没有的话 就要更改搜索引擎。这时候第一要先检查自己的网络问题,如果网络没问题 再看看是不是没有进行搜索引擎设置。然后关闭chrome 再次重新打开 就可以上网啦~如果已经有chrome浏览器请跳到第四步 蟹蟹~打开chrome以为可以上网了 结果。mac chrome更改搜索引擎。下载后打开文件进行拖拽安装。双击打开chrome。
2024-09-08 23:29:10
4449
原创 mac 安装 pycharm
git --version 会返回git版本git version 2.39.3 (Apple Git-146)启动pycharm,本人下载后有中文版直接选择就可以,顺便自动弹出安装git,安装即可。打开pycharm进行代码编写就OK啦。安装完git后可以在终端输入命令查看。下载后点击文件,进行拖拽安装。进入pycharm官网。
2024-09-08 22:46:46
950
原创 mac 下载 python3
装好后打开终端 输入命令python3 会显示版本号,并即刻进入python交互界面,退出python终端命令exit()相关命令-打开终端 输入python3,如果没有会显示command not found: python3。本人下载版本V3.12 (在V3.4版本之后以及V2.7.9版本之后,官网的安装包当中就已经。python3 --version 查看python3安装的版本号。pip3 --version 查看pip3安装的版本号。然后点击downloads可以选择自己的版本。
2024-09-08 17:01:00
451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人