python+requests+pytest接口自动化测试全流程

流程

python->pytest(

request:接口请求

yaml:测试用例数据管理yaml更简洁更方便

allure:测试报告

log:内置log模块,记录测试用例执行到结束流程日志

mysql:数据的查询,关系型

redis:非关系型

)->jenkins(持续集成)->app

Jenkins

Http:是一个协议(服务器传输超文本到浏览器的传输协议)是基于TCP/IP通信协议来传递数据

get、post、put、delete

Http状态码

requests接口请求

Requests: HTTP for Humans™ — Requests 2.32.4 documentation

requests接口请求get请求带参

import requests
url=r"http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionCountry"
r=requests.get(url=url)
print(r.text)

requests接口请求post方法

params

在body内的:

json

data

关联操作

上一个接口的响应,作为下一个接口的参数,两个接口之间产生关联

提取变量

使用变量

pytest断言操作

assert a in b :判断b是否包含a

assert a>b:判断a是否大于b

assert a==b:判断a是否等于b

assert a!=b:判断a是否不等于b

assert a>=b:判断a是否大于等于b

assert a:判断a是否为真

pytest配置项

在项目目录下新建文件命名为pytest.ini

pytest.ini中的testpaths=./存放py文件的目录名(写明)

然后在termnial中直接输入pytest回车

如果更改testpaths后面的路径名,同样只会找寻该目录下的文件

pytest中的setup/teardown

分为四个级别

不在类中

模块级:setup_module/teardown_module(开始于模块始末,生效一次)

函数级:setup_function/teardown_function(对每条函数用例生效)

在类中

类级:setup_class/teardown_class(只在类中前后运行一次)

方法级:setup_method/teardown_method(开始于方法始末)

fixture夹具,@pytest.fixture()

fixture是pytest用于测试前后进行预备,清理工作的代码处理机制

fixture命名更加的灵活,局限性比较小

参数:scope作用域,autouse(默认是false,如果改为True,则以下测试用例全部引用)

括号内需要传入参数(如果不填,默认scop=”function”)

(scope=”function”)每个函数或方法都会调用

(scope=”class”)每一个类调用一次

(scope=”module”)每个文件只调用一次

(scope=”session”)多个文件调用一次,py文件就是module

yaml语法格式

字典:key:{

“key1”:”value1”,

“key2”:”value2”,

}

数组:key:[A,B,C]

组合:key:[{

“key1”:”value1”,

“key2”:”value2”,

}]


数组嵌套:key:[[A,B,C]]

读取yaml文件

pytest参数化(parametrize)

单参数

@pytest.mark.parametrize(“变量”,[[参数]])

单次循环

多次循环

运行时,将数组内的值分别赋值给变量,每赋值一次,运行一次

多参数

@pytest.mark.parametrize(“变量1,变量2”,[[参数1,参数2]])

单次循环

多次循环

参数化之fixture

使用测试固件中的params进行

pytest参数化+yaml文件

通过引入yaml文件,实现学号查询学生的信息

准备好yaml文件:

首先,查找获取到yaml文件里面所需的信息

注意:yaml文件中的值类型是否一致,否则会报错

测试用例的执行顺序

先安装pytest-ordering插件

@pytest.mark.run(order=””)

设置order的值来决定测试用例执行的顺序,当order的值为正数或负数时,值越小,优先级越高,先执行。当order的值为负数和正数的时候,正数的优先级高,0的优先级最高

未添加值的比负数高,比正数低

allure测试报告的生成操作

在pycharm中安装这个两个allure-pytest、allure-python-commons库包

然后在在allure官网中安装allure命令行工具

Central Repository: io/qameta/allure/allure-commandline/2.34.0

配置环境变量(切记注意JAVA_HOME内jdk是否出现无效路径)

验证是否配置成功(在cmd中输入):allure --version(出现版本号则为配置成功)

以下演示一个简单的allure生成报告

api文档:https://allurereport.org/docs/pytest-configuration/

选择一个编写好测试用例的py文件

再点击run发现会生成一个report文件夹,文件内包含多个文件

生成allure报告,在终端下输入命名allure serve 路径

点击回车,会自动跳转生成的allure测试报告

以上只是个简单的报告生成操作,可以根据需求对报告进行进一步的完善

(未完善)............

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值