一、pytest常用插件合集
- pip install pytest 单元测试框架
- pip install pytest-html 生成html测试报告
- pip install pytest-xdist 测试用例分布式执行,多线程
- pip install pytest-ordering 用于改变测试用例的执行顺序
- pip install pytest-rerunfailures 用例失败重跑
- pip install allure-pytest 用于生成美观的测试报告
- pip install requests
- pip install pyyaml
二、pytest测试用例的运行方式
1.主函数模式
(1)运行所有:pytest.main()
(2)指定模块:pytest.main([‘-vs’,’test_demo.py’])需同级目录
(3)指定目录:pytest.main([‘-vs’,’./testcase’]) 这俩可以组合使用
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成。
pytest.main([‘-vs’,’./testcase/test_demo.py::test_03_func’])
参数详解:
-s:表示输出调试信息,包括print打印的信息
-v:显示更详细的信息
-vs:这两个参数一起用
-n:分布式运行,多线程 ‘-n=2
–reruns num :失败用例重跑
-x:表示只要有一个错误,立马停止测试
-maxfail=2:出现两个用例失败就停止。
-k:根据测试用例的部分字符串指定测试用例 -k ‘包含名称’
2.命令行模式
3.通过读取pytest.ini配置文件运行。
pytest.ini这个文件它是pytest单元测试框架的核心配置文件。
(1)位置:一般放在项目的根目录
(2)编码:必须是ANSI,可以使用notpad++修改编码格式。
(3)作用:改变pytest默认的行为。

; 三、pytest执行方式和分组
默认顺序:pytest执行顺序,从上到下
装饰器:
- 改变默认的执行顺序:
@pytest.mark.run(order=2) - 定义用例归属的类型,冒烟类型
@pytest.mark.run.smoke - 定义用例的归属的模块
@pytest.mark.run.usermanage
命令行执行测试用例方式
pytest -vs -m “smoke or usermanage” - 无条件跳过用例
@pytest.mark.skip(‘跳过的原因’) - 有条件跳过
age=1
@pytest.mark.skipif(age>=18, reason=’已成年’)
Original: https://blog.csdn.net/weixin_43744523/article/details/122224810
Author: 飞来直去
Title: pytest 常用命令、插件合集;Python + pytest + requests + yaml
相关阅读
Title: 数据清洗Chap5——数据转换
数据清洗-Chap 5-dataframe操作
5.1日期格式数据处理
1.Pandas中使用to_datetime()方法将文本格式转换为日期格式
2.dataframe数据类型如果为datetime64,可以使用dt方法取出年月日
3.对于时间差数据,可以使用timedelta函数将其转换为指定时间单位的数值
4.时间差数据,可以使用dt方法访问其常用属性
import pandas as pd
import os
import numpy as np
os.chdir(r'C:\Users\qw\Desktop\data ana')
df = pd.read_csv('name.csv',encoding = 'utf-8',dtype = {'user_id':str})
df['buy_date'] = pd.to_datetime(df['day'].format='%Y%m%d',error='coerce')
df.info()
df['buy_date'].dt.year
df['buy_date'].dt.month
df['buy_date'].dt.day
df['diff_day'] = pd.datetime.now() - df['buy_date']
df['diff_day'].head(4)
df['diff_day'].dt.days
df['diff_day'].dt.seconds
df['时间差'] = df['diff_day']/pd.Timedelta('1 D')
df['时间差'] = df['diff_day']/pd.Timedelta('1 M')
df['时间差'] = df['diff_day']/pd.Timedelta('1 S')
df['时间差'].round(decimals = 3)
df['时间差'].head(5)
df['diff_day'].astype('timedelta64[Y]')
5.2高阶函数数据处理
1.在dataframe中使用apply方法,调用自定义函数对数据进行处理
2.函数apply,axis =0表示对行进行操作,axis = 1表示对列进行操作
3.可以使用astype函数对数据进行转换
4.可以使用map函数进行数据转换

df2 = pd_read_csv('num.csv',dtype = str, encoding = 'utf-8')
df2.head(10)
def f(x):
if '0' in str(x):
return '女'
elif '1' in str(x):
return '男'
else:
return '未知'
df2['性别'] = df2['gender'].apply(f)
df2[[ df2['gender']=='2']]
del df2['性别']
df2['性别'] = df2['gender'].map({'0':'女','1':'男','2':'未知'})
del df2['性别']
df2['性别'] = df2['gender'].map(f)
df2['user_id'].apply(lambda x: str(x).replace(x[1:3],'**'))
df2['birthday'].apply(lambda x: x[0:4])
5.3字符串数据处理
1.Pandas中提供了字符串的函数,但只能对字符型变量进行使用
2.通过str方法访问相关属性
3.可以使用字符串相关方法进行数据处理
4.常用方法
函数名称说明contains()返回表示各str是否含有指定模式的字符串replace()替换字符串lower()返回字符串的副本,其中字母都转化为小写upper()返回字符串的副本,其中所有字母都转化为大写split()返回字符串中的单词列表strip()删除前导和后置空格join()返回一个字符串,该字符串是给定序列中所有字符串的连接
df1['价格'] = df1['Price'].str.strip('$')
df1['价格'] = df1['价格'].str.replace(',','')
df1['价格'].astype(int)
df1['Location'].str.split(',').str[0]
df1['Location'].str.split(',').str[1]
df1['Location'].str.split(',').str[2]
df1['Location'].str.len()
Original: https://blog.csdn.net/qq_42997268/article/details/121305131
Author: CUPB-PANGBIN
Title: 数据清洗Chap5——数据转换
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/335435/
转载文章受原作者版权保护。转载请注明原作者出处!