1.返回系统完整的路径,再到指定的系统路径
# 获取运行脚本的路径
p1=os.getcwd()
# 返回完整的路径(获取当前运行脚本的目录,路径分隔符)
p2=os.path.abspath(os.path.dirname(p1)+os.path.sep+'.')
# 指定路径脚本
self.fpath=p2+'/data//test_updateuser.csv'
2.获取接口的sessionid
self.sessionid=dict(response.cookies)['JSESSIONID']
print("sessionid的值",self.sessionid)
response=s.post(url,data=info,cookies=session1).text
print("第二个方法",response)
3.读取数据,从第二行开始遍历
num=0
for row in rows:
# print("第二个方法里面的",row)
num=num+1
# 需要满足,如果是第二行,才会去执行以下代码
if num >1:
# 先去取url的值
url=row[0]
# 再是去取入参
# 入参是字典形式,所以要定义一个空的字典
print('第二个方法',url)
# row[2]是键值的对数
j=int(row[2])
for i in range(3,j*2+3,2):
info[row[i]]=row[i+1]
二、脚本
# 用csv文件更新用户信息,先登录,后更新用户信息,先获取完整的系统路径,再到指定的路径
import csv
import os
import unittest
import requests
class csvupdate(unittest.TestCase):
# 登录接口
def setUp(self):
# 打开csv文件
# 获取运行脚本的路径
p1=os.getcwd()
# 返回完整的路径(获取当前运行脚本的目录,路径分隔符)
p2=os.path.abspath(os.path.dirname(p1)+os.path.sep+'.')
# 指定路径脚本
self.fpath=p2+'/data//test_updateuser.csv'
file=open(self.fpath,'r')
# 读取文件
rows=csv.reader(file)
for row in rows:
# 取出url的值
url=row[0]
# print(url)
# 取出入参
# num=0
# j是指统计参数键值对的个数
# j=row[2]
# i是指遍历的次数
# 为什么会写死,是因为如果以变量的形式写的话,会把逐行所有参数都读出来,实际上只要读第一行的参数就好
# 所以登录接口参数取值是写死的
# for i in range(3,j*2,2):
# 定义一个空的字典数据
userinfo={}
userinfo[row[3]]=row[4]
userinfo[row[5]]=row[6]
# print(userinfo)
# 发送请求,用第一种方法
response=requests.post(url,data=userinfo)
# print(response)
# 因为更改用户信息需要先登录,所以要从登录接口中获取sessionid,sessionid是服务器端发送给客户端的
# session的有效时间是30分钟,sessionid是以cookie的形式存在客户端的,如果关闭掉浏览器,那么session
# id就会时效,再次访问url时,服务器会给客户端发送一个新的sessionid
# 从response中获取sessionid
# 从response中获取cookies,这个response是不能通过.text转换成str类型,要不然下面的cookie
# 方法用不了
self.sessionid=dict(response.cookies)['JSESSIONID']
print("sessionid的值",self.sessionid)
break
# 更新用户信息接口
def test_update(self):
# 打开文件
file=open(self.fpath,"r")
# 读取文件
rows=csv.reader(file)
info={}
num=0
for row in rows:
# print("第二个方法里面的",row)
num=num+1
# 需要满足,如果是第二行,才会去执行以下代码
if num >1:
# 先去取url的值
url=row[0]
# 再是去取入参
# 入参是字典形式,所以要定义一个空的字典
print('第二个方法',url)
# row[2]是键值的对数
j=int(row[2])
for i in range(3,j*2+3,2):
info[row[i]]=row[i+1]
# 发送请求,用第二种方法
s=requests.session()
session1={'JSESSIONID':self.sessionid}
response=s.post(url,data=info,cookies=session1).text
# print("第二个方法",response)
self.assertIn(row[1],response)
if __name__ == '__main__':
# # 实例化类
# obj=csvupdate()
# # 用类去调用方法
# obj.test_update()
unittest.main()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)