python - requests中添加配置文件

HttpRequests.py
#-*- coding:utf-8 -*- import requests
class HttpRequests():
def http_requests(self,url,params,http_mothed,cookies=None):
if http_mothed=='get':
res=requests.get(url,params,cookies=cookies)
return res
else:
res=requests.post(url,params,cookies=cookies)
return res
test_HttpRequests.py
#-*- coding:utf-8 -*- #存放测试用例
import unittest
from study_181130_request.HttpRequests import HttpRequests COOKIES=None class TestHttpRequests(unittest.TestCase): def setUp(self):
# self.url='http://47.107.168.87:8080/futureloan/mvc/api/member/login'
pass def __init__(self,url,params,http_method,excepted,methodName):#初始化传参;用初始化函数一定要记得去看看父类里面有没有初始化函数,如果有,需要超继承 self.params=params#请求的数据
self.http_method=http_method#请求方法
self.url=url
self.excepted=excepted
super(TestHttpRequests,self).__init__(methodName)#超继承 def test_api(self):#登录成功 :手机号正确、密码正确;用例里面不可以传参数
global COOKIES#声明全局变量
res=HttpRequests().http_requests(self.url,self.params,self.http_method,COOKIES)
try:
self.assertEqual(self.excepted,res.json()['msg'])
except AssertionError as e:
print('断言结果是:{}'.format(e))
raise e if res.cookies:
COOKIES=res.cookies#当res.cookies非空时,修改COOKIES的值
test_runner.py 10-15新增
#-*- coding:utf-8 -*- import unittest
import HTMLTestRunnerNew
from study_181130_request.test_HttpRequests import TestHttpRequests
from study_181130_request.read_excel import TestExcel
from study_181130_request.read_config import ReadConfig #利用配置类,从配置文件case.conf里面读取section:case;option:button的values值
button=ReadConfig().read_config('case.conf','case','button') #调用task_04_do_excel这个模块里面的TestExcel类里面的get_TestExcel方法
#此方法需要 文件名,表单名,配置的值 这几个参数
test_data=TestExcel().get_TestExcel('http_requests.xlsx','Sheet1',button) suit=unittest.TestSuite()##装用例的地方
for item in test_data:
suit.addTest(TestHttpRequests(item['url'],eval(item['params']),item['http_method'],item['excepted'],'test_api'))#创建实例的方法来添加用 #执行用例
with open('test_api.html','bw+') as file:
Runner=HTMLTestRunnerNew.HTMLTestRunner(stream=file,verbosity=2,
title='HTTP请求作业-单元测试报告',description='测试一下HTTP请求',tester='huimin'
)
Runner.run(suit)
read_excel.py 23-32行新增
#-*- coding:utf-8 -*- from openpyxl import load_workbook
import configparser class TestExcel(): def get_TestExcel(self,file_name,sheet_name,button):
workbook = load_workbook(file_name)#打开表格
sheet = workbook[sheet_name]#定位表单 test_data = []#把所有行的数据放到列表中 for i in range(2,sheet.max_row+1):
sub_data = {}#把每行的数据放到字典中
for j in range(1,sheet.max_column+1): sub_data[sheet.cell(1,j).value] = sheet.cell(i,j).value test_data.append(sub_data)#把每一行数据添加到test_data列表里 final_data=[]#最后的测试数据
if button == 'all':
final_data=test_data
else:
for item in test_data: #遍历test_data里面的数据
if item['case_id'] in eval(button):
#如果表格中case_id在button里面,就把这条用例加到final_data里面
final_data.append(item) return final_data
read_config.py -新增
#-*- coding:utf-8 -*- import configparser
class ReadConfig():
def read_config(self,file_name,section,option):
cf = configparser.ConfigParser()#创建对象
cf.read(file_name,encoding ='utf-8')#打开配置文件
value=cf.get(section,option)
return value
执行结果:

python - requests中添加配置文件的更多相关文章
- Python项目中使用配置文件
一些讨论 Python中使用配置文件的最佳实践 Python中使用配置文件的最好方法 Python符号常量 多种配置文件方案对比 我的建议 1. 排除yaml yaml 不是一个好主意, 因为需要给项 ...
- Python字符串中添加、插入特定字符
分析 我们将添加.插入.删除定义为: 添加: 在字符串的后面或者前面添加字符或者字符串 插入: 在字符串之间插入特定字符 在Python中,字符串是不可变的.所以无法直接删除.插入字符串之间的特定字符 ...
- eclipse中添加配置文件夹config
1. 在项目上右键->Build path->Configure Build Path->Source下的Add Folder,如图 2. 在弹出框中,Create New Fold ...
- C++中添加配置文件读写方法
比如有一个工程,一些变量有可能需要不时的修改,这时候可以通过从配置文件中读取该数值,需要修改时只需要修改配位文件即可. 比如有一个这样的变量m_nTest; 我么可以写两个函数ReadConfig() ...
- python字典中添加项
body_daily_close = { "mappings": { "properties": { "trade_date": { &qu ...
- resources中添加配置文件
- python序列中添加高斯噪声
def wgn(x, snr): snr = 10**(snr/10.0) xpower = np.sum(x**2)/len(x) npower = xpower / snr return np.r ...
- python爬虫中的requests模块
Requests: 让 HTTP 服务人类 一.简介 虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests ...
- 如何在ASP.NET的web.config配置文件中添加MIME类型
常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...
随机推荐
- 2、Zookeeper端口和ip修改
clientPort=2181clientPortAddress=192.168.0.120
- Java变量的初始值
Java中的变量如果没有赋值,成员变量默认被初始化,局部变量则不会. 对于成员变量 int a; // a的初始值为0 如下例中的成员变量a,b,c,d public class Va ...
- SDRAM初识
SDRAM初识 1. 2. 3. 4. SDRAM分为bank地址和行列地址,看bank地址的位宽就可以推断出bank的数量,行列地址信号是集成在了一个信号中,是并行的. 5. 6. SDRAM与主机 ...
- position 分层固定在屏幕某位置
很多网站我们看到在屏幕右下角有一个,返回顶部,始终在那儿,还有些网站顶部菜单栏永远也是固定的不动,就是通过今天学习的position来做的. 在style中加入 positon:fixed;top 0 ...
- http修改443端口,http 强制跳转https
修改apache http/https 端口号 1.修改http的端口 打开$HTTPD_HOME/conf/httpd.conf文件,找到Listen,后面紧跟的是端口号,默认是80,把它修改为你想 ...
- uiautomator viewer
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...
- 解决iScroll横向滚动区域无法拉动页面的问题
近期项目中使用iScroll遇到一个问题,在设定wrapper为横向滚动时,如果你手指放在该区域,将无法拉动页面,也就是说该区域取消了默认事件.这个体验是实在是无法接受,特别是页面中有多个横向滚动区域 ...
- 原来 php 中的 json_encode() 只支持utf-8.不支持gbk啊
原文地址:在gbk/gb2312编码中如何使用json_encode/json_decode
- 解决js输出汉字乱码问题
当我们需要使用js输出汉字时,偶然会出现输出的中文汉字乱码的情况,在网上收了很多解决方案 1.在mata中加 <meta content="text/html; charset=utf ...
- JAVA开源B2C系统
前言 最近有人想面向境外销售商品,但是又不想依托于亚马逊这些平台,于是找我来帮忙想弄个B2C系统.因为刚开始只是打算试试水,也就不打算投入多少成本了.所以这边就考虑使用开源的B2C系统来直接使用了. ...