当前位置: 首页 > wzjs >正文

新疆网站党建设备世界杯比分查询

新疆网站党建设备,世界杯比分查询,常德市住房和城乡建设局网站,wordpress自定义添加meta模块关联 利用Python提供的fixture可以实现关联 实现步骤: 在case目录下,新建conftest.py文件,比如我们需要token,就在这个文件下定义一个公共的方法,调用登录接口并返回需要的token值(注:公共的方…

关联
利用Python提供的fixture可以实现关联

实现步骤:
在case目录下,新建conftest.py文件,比如我们需要token,就在这个文件下定义一个公共的方法,调用登录接口并返回需要的token值(注:公共的方法一般不传入参数,返回值其实也是看情况可要可不要的)

请添加图片描述

@pytest.fixture(scope='function')   #使用pytest的fixture把下面的方法变成公共方法

在需要使用的测试案例中,传入方法名,在需要用到关联的参数时,直接使用

请添加图片描述

面试题:接口与接口之间的关联是怎么处理的?

答:框架使用的是Python的fixture,定义一个公共的方法,通过去引用这个人方法名字的方式,来自动调用这个公共的方法,并且获得需要的返回值,例如token,以此来解决关联的问题

pytest中数据和脚本分离(即实现参数化过程)

什么时候需要参数化
实际项目中,接口地址,请求头,请求参数等,这些都称为数据,一般来说,需要将数据单独存放,例如放在数据文件里

参数化一般用于相同接口不同参数的使用,比如登录接口,有登录成功和登录失败

pytest参数化

pytest的参数化主要有两种方式,第一种是使用pytest的parametrize实现参数化;第二种是使用数据文件

使用parametrize实现参数化
pytest参数化----parametrize理解:第一个参数是字符串,表示要给test_data()方法哪一个参数,即他俩是一样的,第二个参数给一个可序列的数据类型(即元组和数组),最后test_data()方法分别取序列的值执行

请添加图片描述

运行结果如下:

请添加图片描述

由此可以发现,现在的测试用例变成了四条,即可序列化元组(1,2,3,4)的长度,并且这时候的datas就是元组中的每个数据

使用parametrize编写第一个接口:

请添加图片描述

以此类推,可以编写多个接口

使用parametrize编写6个接口

请添加图片描述

优化
优化,还可以在每个测试案例前,加上接口名称,如下:

请添加图片描述

使用数据文件实现参数化

数据文件准备
可以用txt、excle、yaml等文件,存放数据,初学者推荐excle,比较直观

以下以excle文件为例:一般会有id、title、url、headers、method、data、http_code、msg几栏,注意sheet页

在data文件夹里存放数据文件
选中data文件夹,右键----在文件资源管理器中显示,将刚才的excle文件粘贴到data目录下

data文件夹下,就有个测试数据文件

取数据

这就会涉及到Python中读取excle的知识,需要用到Python中的第三方包xlrd

①安装xlrd包:pip3 install xlrd==1.2.0(指定版本)

请添加图片描述

②在utils中导入含文件读写方法的py文件

请添加图片描述

Python读取excle代码:

 
 
  1. import xlrd

  2. def read_excel(excel_path, sheet_name, skip_first=True):

  3. results = []

  4. datas = xlrd.open_workbook(excel_path) # 打开excel获取excel的操作对象

  5. table = datas.sheet_by_name(sheet_name) # 根据sheetname打开具体的页面

  6. # start_row = 1 if skip_first is True else 0

  7. if skip_first is True: # skip_first为true:从第二行取

  8. start_row = 1

  9. else:

  10. start_row = 0

  11. # 循环读取excel

  12. for row in range(start_row, table.nrows): # [1,2,3,4,5,6]

  13. results.append(table.row_values(row))

  14. return results

  15. # [

  16. # [行1],

  17. # [行2],

  18. # [行3]...

  19. # ]

  20. # 防止其他文件导入exceltools时执行这些代码,测试代码

  21. if __name__ == "__main__":

  22. a = read_excel(r'D:\小可爱\code\RCtest\data\人才管理系统.xlsx', "首页")

  23. print(len(a), type(a))

  24. for i in a :

  25. print(i)

在编写测试用例的py文件中里导入exceltools

请添加图片描述

代码如下:

 
  1. import os,sys

  2. sys.path.append(os.getcwd())

  3. from utils.exceltools import read_excel

编写测试用例

首先,要特别注意读取excle返回的结果如下,是字符串类型的数据,需要eval一下,尤其注意token的值:‘{“token”:“user_login”}’,可以发现,如果在excle数据文件中,如果直接写成{“token”:user_login},那Python读取出来后,就会变成’{“token”:user_login}',直接eval以下就能变成需要的字典格式

请添加图片描述

修改数据文件:

请添加图片描述

再次打印Python读取的excle文件,返回如下:

请添加图片描述

编写测试用例:

请添加图片描述

至此,实现了参数化的测试案例编写。

优化

观察可以发现,目前我们写的所有的测试案例,都是post方法的,一旦在excle表格中填写了其他类型的方法,那测试案例就会报错,因此,二次封装request方法很有必要(放在utils中)。

①封装代码如下:

 
  1. import requests

  2. def http_request(url="", method="post", headers={}, json={}):

  3. if method == "post":

  4. return requests.post(url=url, headers=headers, json=json)

  5. elif method == "get":

  6. return requests.get(url=url, headers=headers, json=json)

  7. else:

  8. return False

②在测试案例中导入封装的方法:

 
  1. import os,sys

  2. sys.path.append(os.getcwd())

  3. from utils.httprequest import http_request

③修改原测试案例(method参数之前就传了-----先见之明):

http://www.dtcms.com/wzjs/121545.html

相关文章:

  • 做外贸网站建设网络营销策划目的
  • 买app的网站建设seo网站优化方案案例
  • 民治营销型网站制作天津百度推广电话
  • 新疆做网站检测网站是否安全
  • 网站链接视频怎么做外贸定制网站建设电话
  • 网站建设公司 南京精准拓客软件哪个好
  • 网站建设顶呱呱市场推广方案
  • 那种广告式网站怎么做资源网站排名优化seo
  • 网站备案 网址北京seo收费
  • 有没有免费做片头的网站搜索软件排行榜前十名
  • wordpress预览效果不一样青岛网站关键词排名优化
  • php 网站建设 教学全国新增确诊病例
  • 网站优化排名价格网址查询站长工具
  • 东莞响应式网站实力乐云seowindows优化大师是电脑自带的吗
  • 珠海网页模板建站win7系统优化大师
  • 英语网站新增两个栏目公司企业网站建设
  • 外贸免费网站建设优化设计答案大全
  • wordpress 获取文件路径seo优化是什么职业
  • 关于公司建网站怎样做自己的网站
  • 企业网站如何做架构图宣传推广网络推广
  • 网上注册公司要钱吗百度seo推广工具
  • 网站建设策略营销百度搜索引擎服务项目
  • 电子工程信息建设网潍坊seo外包平台
  • 做网站为什么每年都要续费google年度关键词
  • 网站投放广告教程新闻小学生摘抄
  • 北京营销型网站建设公司今日头条新闻下载安装
  • soho在哪里做网站网站建设网络推广公司
  • 网站设计制作的特点有哪些平台推广渠道
  • 广告设计公司名称大全简单大气搜索引擎优化是指
  • 做免费采集电影网站犯法吗线上推广的渠道和方法