zoukankan      html  css  js  c++  java
  • 【接口自动化】selenium库也有大用场(获取cookie)

    相信有些童鞋在做接口、或者说接口自动化测试的过程中会遇到这样的场景:测试的接口,必须是需要登录后才能发起请求成功的。

    那么怎么解决呢? 本着团队协作的精神,我们就去让开发同学开个后门,给你个“万能”值,那么你带着这个“万能”值在请求里,就可以畅通无阻了。

    但是也不是开发都愿意干这样的事儿,而且很多测试童鞋脸皮也薄(O(∩_∩)O哈哈~),脸皮薄不提倡啊。那么就自己的事儿自己来吧。

    既然是需要登录才可以请求,那我们就登录呗。咋登录呢?
    selenium库用起来,然后用selenium获取浏览器cookie。下面demo一段登录操作,来登录被测试的系统。

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://xxx.xx.com/xxx/login") #打开登录地址
    driver.find_element_by_id("username").send_keys("xxx") #输入用户名
    driver.find_element_by_id("password").send_keys("xxxx") #输入密码
    driver.find_element_by_xpath("//button[.= '登录']").click() #点击登录
    cookie = driver.get_cookies() #这里就是获取cookie
    print(cookie)
    

    让我们来康康到底拿到cookie了木有?

    [
     {
        'domain': 'xxxx.xx.xxxx.com',
        'httpOnly': True, 
        'name': 'SESSION', 
        'path': '/xxx/',
        'secure': False, 
        'value': 'YjRjYzY1ODMtNjA1ZS00OWZmLWFmODQtZjhmY2ZjMmIxNzlj'
     }
    ]
    

    看下浏览器F12,找到cookie,比对一下

    OK,就是这个值了,那么就可以带着这个值开开心心的测试接口啦。

    接口自动化可以采用pytest单元测试框架+requests库,简单粗暴,sei用sei资道。
    翠花,上demo

    import requests
    import pytest
    
    HEADER = {
               'Cookie': "SESSION=YjRjYzY1ODMtNjA1ZS00OWZmLWFmODQtZjhmY2ZjMmIxNzlj"
        }
    
    def test_01():
    
        r = requests.get("http://xxxx/finance/detail" ,headers=HEADER)
        result = r.json()
        print(result)
    
    if __name__ == '__main__':
        pytest.main(['-s', 'demo1.py'])
    

    看下打印出的请求结果:

    当然了,接口自动化测试别忘记加断言哦,demo里就不写了。

    总之就是活学活用。

  • 相关阅读:
    JavaScript之事件委托
    js中的事件委托(事件代理)详解
    CentOS已经安装命令,但提示找不到
    在Linux下创建7种类型的文件
    python源码安装的包的卸载
    新建文件所属组设置
    FFmpeg基础
    微服务架构概念
    一台 Java 服务器可以跑多少个线程?
    「学习的真正作用」​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​写出我心(一百三十八)
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/11549355.html
Copyright © 2011-2022 走看看