多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

如何利用cookie进行登陆系统-自动化测试

更新时间:2022-04-14 09:09:23 作者:多测师 浏览:239

  本文介绍一下如何利用cookie进行登陆系统,这里使用到了request模块,我们首先利用request模块,请求登陆地址进行登陆,登陆成功以后获取cookie值,然后再通过add_cookie添加到浏览器,使系统处于登陆状态。这里需要注意的是request请求返回的cookie的格式不能直接传入add_cookie方法,所以这里需要进行转换。

如何利用cookie进行登陆系统-自动化测试

  #这里需要注意区别,按住格式进行转换。

  #request 请求返回cookie的格式

  {'PHPSESSID': 'alvrh1i2h7joj2il2jn3sh7up1', 'uid': '16'}

  #selenium方法需要的cookie的格式

  {'value': 'alvrh1i2h7joj2il2jn3sh7up1', 'httpOnly': False, 'domain': 'yingxiao.chewumi.com', 'name': 'PHPSESSID', 'secure': False, 'path': '/'}

  下面看一下例子,来通过cookie登陆然后跳转到圈子详情页面

  #-*- coding:utf-8 -*-

  import time

  import requests

  from selenium import webdriver

  def get_system_cookies(url,account,password):

  '''通过request 登陆系统,获取cookie'''

  cookiesList = []

  data = {"username":account,"passwd":password}

  roomSession = requests.Session()

  roomSession.post(url,data=data)

  loadCookies = requests.utils.dict_from_cookiejar(roomSession.cookies)

  for cookieName,cookieValue in loadCookies.items():

  cookies = {}

  cookies['name'] = cookieName

  cookies['value'] = cookieValue

  cookiesList.append(cookies)

  return cookiesList

  def is_login_status_succeed(driver):

  '''判断是否登陆状态,非登陆状态,通过cookie登陆'''

  loginUrl = 'http://yingxiao.chewumi.com/login.php' #登陆地址

  account = 'account' #账号

  password = 'password' #密码

  driver.get('http://yingxiao.chewumi.com/index.php') #测试是否为登陆状态

  if '请登录' in driver.page_source: #判断是否登陆为登陆页面

  for cookie in get_system_cookies(loginUrl,account,password): #如果登陆界面获取cookie

  driver.add_cookie(cookie) #添加cookie ,通过Cookie登陆

  return driver

  def request_circle_details(driver,requestUrl):

  '''测试跳转圈子详情'''

  is_login_status_succeed(driver)

  driver.get(requestUrl)

  verifyField = driver.find_element_by_xpath('/html/body/div/div/div[2]/h1').text #获取页面标题

  try:

  assert verifyField == '圈子详情'

  return '测试通过'

  except AssertionError as e:

  return '测试未通过'

  '''测试下效果'''

  requestUrl = 'http://yingxiao.chewumi.com/list.php?page=1'

  driver = webdriver.Chrome()

  driver.maximize_window()

  print (request_circle_details(driver,requestUrl))

  driver.get(requestUrl)

  time.sleep(2)

  driver.quit()

  通过结果显示我们没有操作登陆状态,直接进入了圈子详情到页面。

  以上内容为大家介绍了自动化测试中的如何利用cookie进行登陆系统,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部