自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Pytest 项目结合Jenkins

参考网上其他教程。

2023-12-31 14:12:51 2112

原创 pytest之allure测试报告03:allure动态自定义报告

3、测试用例中读取调用。

2023-12-16 20:31:19 280

原创 pytest之allure测试报告02:allure具体使用方法

写入 addopts: -vs --alluredir ./report。./代表报告生成在当前文件的根目录,report即为生成目录文件夹的名称。如下运行case_optimize_class文件后,在test_case_optimize文件夹下生成report。3)控制台输入allure generate allure-report 同样也能项目根目录中生成报告。2)终端执行生成生成根目录report:会在整个项目的根目录下生成report。

2023-12-16 15:20:36 400

原创 pytest之allure测试报告01:Windows安装java和allure环境

使用pip install allure-pytest安装。把bin目录添加到环境变量Path下。下载完成后,解压至本地电脑。参考其他Java安装教程。在pycharm中,

2023-12-06 17:24:55 146

原创 框架日志模块logging03:完善接口返回的日志代码

2、定义process_response()处理判断接口返回内容。注意它需要mobile_query()的返回数据response作为传参。1、在utils文件夹下新建一个response_util文件。3、mobile_query()调用。

2023-11-20 14:11:37 68

原创 框架日志模块logging02:日志打印请求头相关参数

有时候请求头需要带有token或cookie,而上述写的requests方法无法获取到token或cookie。2)将request()中的request.get()换成self.session.get()。具体可搜索了解requests.get 跟 request.session().get 区别。1)在中初始化requests.session去接收请求的headers。1、在rest_client文件中创建专门日志打印方法。request()方法 调用。

2023-11-20 13:41:50 183

原创 框架日志模块logging01:日志模块logging配置

日常中主要使用info(),debug(),warnig(),error()的日志。执行用例后,查看log文件夹下的log文件可看到:已经正确打印出log内容。1)引入logging和os模块。2、编写日志配置文件代码。2)定义地变量接收地址。3、测试用例中调用。

2023-11-19 16:48:52 104

原创 框架代码分层优化04:接口请求部分代码完善

对于后续测试用例需要打印输出请求头,请求方法等日志信息,如果get()、post()都写入打印日志的代码,则会增加代码冗余度。:所以需要让get()和post()都统一调用一个request方法,只需要在request方法中写入打印日志代码。至此,用例执行成功,代码改造完毕。

2023-11-19 16:27:19 59

原创 框架代码分层优化03:接口请求部分代码封装

将接口请求部分代码抽出放到api文件中,如下mobile_query()即为请求接口的方法。1)新建一个文件夹及文件用来存放每个接口必须要调用的request,post方法。针对已经读取yaml和ini文件的用例代码的接口请求部分,进行封装。注意mobile_query()的括号中已经需要传入参数param。在调用rest_client文件的get方法的url基础上加上了。则以上两个方法中的params可直接去掉,进一步简化代码。1)新建一个专用的api文件夹及文件。如上图,第二步中的url仍需要完善。

2023-11-18 23:00:42 61

原创 框架代码分层优化02:读取yaml和ini代码分装

目的:创建一个文件,它同时包含读取yaml和ini方法。将两个读取方法用一个class统一封装起来。定义param,url实参接收两个读取方法的值。1、创建文件,封装方法。至此,封装调用成功。

2023-11-18 16:25:41 44

原创 框架代码分层优化01:python读取ini配置文件

一个项目中许多的用例请求都需要用到域名,域名变了就需要把所有用例中的url都进行修改,比较麻烦。2)引入configparser,编写read_ini()读取ini。1、创建ini文件。可以与yaml文件一起放在cofig文件夹下。4、用例代码中定义url接收read_ini的域名,并进行替换。1)安装configparser第三方包。至此配置读取域名ini文件成功。2、在ini文件中写入域名。3、创建方法读取ini文件。

2023-11-18 14:58:06 93

原创 pytest进阶参数化用法05:使用yaml进行接口实战

2、新创建一个read_data文件,存放编写调用data.yaml的read_data()。并用get_data接收read_data()的返回。至此,基于data.yaml文件中的传参数据有两组,只有一组正确。则以上两个方法均为一个pass,一个faild。3、主程序文件test_yaml_mobile调用read_data文件中的get_data。path的路径参考pytest进阶参数化用法04。1、编写data.yam存放请求参数l。

2023-11-18 13:00:47 154

原创 pytest进阶参数化用法04:yaml+parametrize使用

在pytest进阶参数化用法03中我们已经学会了读取yaml文件中的数据,那么此时只需要定义变量接收yaml的参数,去结合parametrize使用即可。成功传入data.yaml中的heros_name的三个参数,并成功运行三个用例。引入os模块,结合下图的yaml文件目录位置,利用os写出正确的文件目录地址。在实现读取yaml文件功能的文件代码中定义变量(get_data)接收。可得yaml的文件路径为:(可通过打印目录来判断文件地址是否已正确)1、找到正确的yaml文件的路径。2、定义变量并调用。

2023-11-17 15:05:53 328

原创 pytest进阶参数化用法03:python读取yaml文件内容

1、安装pyyaml第三方包。在Python Package中搜索后安装,或控制台输入pip install pyyaml进行安装。2、创建一个工具文件夹utils,及一个python文件用来编写调用yaml的方法。运行结果如下:同时也就可以观察返回的数据格式和层级是不是自己想要的结果。open()实现打开文件,括号中可使用相对路径找到文件的位置,3、引入yaml,并打开和调用data.yaml。safe_load()实现读取文件的内容。至此,python读取yaml内容成功。

2023-11-17 12:07:37 376

原创 pytest进阶参数化用法02:YAML详解

YAML是一个对所有编程语言都很友好的。它是一种直观的能够被电脑识别的数据序列化格式,是一种可读性高且容易被人类阅读、容易和脚本语言(不仅仅是Python)交互,用于表达资料序列的编程语言。YAML语言的本质是。

2023-11-17 11:38:37 406

原创 pytest进阶参数化用法01:parametrize详解

参数化parametrize可以组装测试数据,在测试前定义好测试数据,并在测试用例中使用,提高测试效率。parametrize单参数单次循环的基本语法:print(a)其中a为变量,变量的值b需要放在数组中。且def test_parametrize()中的括号内需要引入变量a。运行结果:如上代码定义了三个参数值,则分别三次给变量name进行赋值,执行三条测试用例可加上断言后运行:既分别拿三个参数和“小乔”进行判断,那么只有一条用例通过。

2023-11-16 16:09:41 1380

原创 pytest之fixture用法06:fixture中的params和ids

因为params_fixtur方法中有两个params参数,所以每次调用后打印出来,就是执行了两条用例。因为ids分别标识了用例名,也就一起打印输出。如上除了参数可修改,params_fixtur方法为固定写法,request和param是关键字不可修改。然后test_params进行调用。fixture中params和ids分别存放的是参数和用例名称。

2023-11-16 15:07:38 117

原创 pytest之fixture用法05:usefixtures方法

第一种是我们之前文章中已经使用的方法。第二种usefixture无法接收返回值,在方法不需要返回值时使用就会更直观地看出调用了fixture方法。@pytest.mark.usefixtures('use_fixture', 'use_fixture2')括号中是字符串格式。前提:定义了一个fixture方法。

2023-11-15 09:47:17 180

原创 pytest之fixture用法04:使用yield做后置处理

除了使用fixture做前置程序外,有时还需要对代码执行完成做后置处理,需要使用yield,使用方法如下:在contest文件对应的fixture函数增加代码。同样其他文件中的程序进行调用,执行结果如下。

2023-11-15 09:32:03 81

原创 pytest之fixture用法03:使用fixture返回数据

1、确定传参的参数。以测试手机号归属地的request请求为例,接口需要传的参数为shouji,appkey。后续接口使用fixture的数据,是实际场景中一大应用,起到了类似前置程序一样的作用。2)另外定义两个变量接收get_params的值,以这两个变量作为传参去请求。2、conftest中定义fixture方法返回shouji、appkey。3、调用2中定义好的get_params方法。此处有两种调用参数形式。1)传参中直接用get_params的返回值。

2023-11-14 17:46:31 292

原创 pytest之fixture用法02:使用conftest管理fixture

我们在pytest之fixture用法01中学习的fixture的具体用法都是直接写在用例文件当中,而使用conftest管理fixture就是将这些定义fixture方法代码统一放到一个文件里。既conftest所在文件夹的文件及其下级的文件的方法,都可以直接调用conftest中的方法。如果fixure方法中写入autouse=True,即为方法每次都自动执行该前置程序,无需在方法中再调入方法名。其他文件的用例方法要使用时,无需导入,直接调用conftest中相应fixture方法即可。

2023-11-14 16:01:22 68

原创 pytest之fixture用法01:fixture详解

session级的fixture用于多个py文件一起只调用一次的场景。2、@pytest.fixture 作用范围:fixture的作用范围:session>module>class>function。定义一个func()方法,标记@pytest.fixture(),括号为空则默认scop为function。即使类中的每一个方法都调用func,仍然只在第一个用例前执行func方法。哪个方法/函数要使用前置步骤,则在方法内调用前置方法的方法名。如果文件中的所有方法都需要使用该前置方法,fixture中加入。

2023-11-14 15:18:50 178

原创 pytest基础用法08:解决接口参数依赖

使用类属性传参给第二个用例的方式更好。

2023-11-13 21:08:56 145

原创 pytest基础用法07:skip和skipif的用法

但其可支持条件判断,括号内放入判断条件按,条件为true时跳过执行该用例,为false则不跳过。当需要跳过不执行某个测试用例时,则该用打上。@pytest.mark.skip即可。

2023-11-13 20:19:53 67

原创 pytest基础用法06:setup和teardown详解

运行结果如下,尽管程序中有两个测试用例,setup和teardown都只执行一次。注意:如果结果展示teardown的执行结果在前,setup的执行结果在后,这只是控制台输出格式问题(用的 -s),实际执行顺序还是先setup,后teardown。setup_function/teardown_function,对每条函数用例生效(setup/teardown不在类中)。4、方法级:setup_method/teardown_method,开始于方法始末(setup/teardown在类中)

2023-11-13 13:11:45 224

原创 pytest基础用法05:-m,-k,-q,-s,-v运行参数详解及ini配置指定运行参数

实际中测试用例有很多,如果每个用例都打上标签,不利于后期去除或变更标签。故可以给一个测试用例类打上标签,类中包含相应的测试用例。代码中不需要做其他操作,关注自己想要的用例包含的关键字,并在终端执行中带入该关键字。与testcases下的test_two 文件两个用例的判断情况一致。注意:ini文件中不要有中文符号,逗号,冒号,引号等。它能把程序中print的信息打印出来,其他与-q 的执行结果相差不大。最终识别包含mobile的文件中的两个用例并执行。五、pytest -v:输出我们用例中的调式信息。

2023-11-13 10:48:01 1591 1

原创 ptest基础用法04:指定目录、文件执行用例以及配置testpaths

目的:配置一个默认执行的目录文件地址,然后每次终端输入pytest就自动只执行该目录下的测试用例。2)在pytest.ini中第一行输入[pytest]。1)选择主项目新建一个file,取名为pytest.ini(必须是这个名字)。终端只需输入pytest,而不再需要输入具体目录即可准确执行。2)指定文件,pytest 文件夹名/文件名。结果:搜索并执行该文件夹下所有文件的测试用例。1)指定目录:pytest 文件夹名。结果:只执行该文件下的测试用例。同理,也支持地址配置为指定文件。

2023-11-12 17:08:32 1371

原创 Pytest基础用法03:pytest+requests执行用例

2、定义test_mobile的方法。然后如requests模块练习中一样,定义变量接收requests请求结果。该接口post和get请求一致都是params传参,故post请求接口如下图所示,与get没有很大差异。1、用postmen请求接口,确定接口传参及返回结果。以手机号归属地接口为例。3、对返回结果进行assert断言,并执行结果查看断言结果,验证用例是否通过。

2023-11-11 22:38:46 43

原创 Pytest基础用法02:测试用例命名规范及执行顺序

1、默认执行顺序:从上到下按顺序执行。控制台输出用例执行顺序语法:pytest -vs 文件名.py。如下图,控制台输出的用例执行顺序和代码中书写顺序一致,为默认从上到下的顺序。1、.py测试文件必须以“test_”开头(或“_test”结尾)再标识每个用例的顺序后执行,结果便可以得到想要的顺序。3、测试类必须以Test开头,并且不能有init方法。2、使用pytest_ordering自定义顺序。同理,如果需要定义test类的执行顺序,也如此操作。2、测试方法必须以“test_”开头。

2023-11-11 19:30:07 159

原创 Pytest基础用法01:安装包及运行测试用例

2、在file--setting--Tools--python intergrated Tools中修改testing为pytest。PythonPackage中搜索pytest后安装即可。修改后,test用例即显示绿色执行按钮,点击即可执行。

2023-11-09 19:52:36 55

原创 requests方法学习05: requests模块session用法

但是接着请求第二页订单时,因为没有保存token,返回的是登录页,无法得到订单列表的第二页。3、再次运行r打印res2(第二个接口)返回,成功。如下,登录接口登录成功,进入订单页面。(1)定义一个变量接收该方法。(2)相应的两个接口跟着变化。

2023-11-09 14:43:18 86

原创 requests方法学习04: requests 加入headers进行请求接口

以豆瓣-电影页面为例,只传入url和参数运行时,报错418状态码,搜索可知为豆瓣的反爬虫机制,需要加入headers相关头部信息。提示:一般的反爬虫机制为:检查请求头的 User-Agent、Referer、Cookies 等。至此,带headers的requests请求成功。

2023-11-09 11:14:03 618

原创 requests方法学习03:requests模块进行post请求

观察post方法(ctrl+鼠标左键点击post方法可看到),已定义可以用form-data、json格式进行传参,因为。**kwargs所以也可以关键词参数传参。同02中get方法的params传参方式。

2023-11-08 20:58:12 49

原创 requests方法学习02: requests模块带参数进行get请求

同样调用get方法,get方法中放入params参数。既params= params中左边的params是形参,右边的自己定义的实参。1、查看get方法的参数形式。发现其中包含url,params参数,及kwargs关键字参数。既该参数是请求url时需要带入的参数。

2023-11-08 20:04:36 280

原创 requests方法学习01: pycharm创建项目并进行接口请求

4、定义变量并使用requests方法。定义r接收requests方法的结果,打印输出r中的不同形式结果及status code。文件中如图 输入 import requests,requests标红表示未引入。鼠标悬浮requests后点击安装requests包。选择File-->New Project,在1处选择项目存放地址,勾选2处后并点击Create创建成功。File-->New-->Python file并命名,保存创建成功。

2023-11-08 19:16:18 222

原创 Jmeter学习04——压测简析

Jmeter压测简析

2022-10-08 16:27:08 7422

原创 Jmeter学习03——登录后获取token进行后续操作

jmeter学习

2022-09-07 14:56:55 2386

原创 JMeter学习02——基本使用

jmeter基本使用

2022-09-07 10:46:26 170

原创 Jmeter学习01--环境搭建

jmeter环境搭建

2022-09-06 15:29:49 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除