流程
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命名更加的灵活,局限性比较小
参数: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测试报告
以上只是个简单的报告生成操作,可以根据需求对报告进行进一步的完善
(未完善)............