• 【接口自动化】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里就不写了。

    总之就是活学活用。

  • 相关阅读:
    各种web页面中的绘图技术对比
    32位和64位操作系统
    mysql新建用户本地无法登录
    ruby libmysqlclient.18.dylib
    jenkins创建git任务连接时遇到的问题
    mybatis 打印日志log4j.properties
    使用shell统计出出现次数排名top10的网址(在博客园中没找到,特转一下)
    ActiveMQ和Tomcat的整合应用(转)
    java 哪些情况下会使对象锁释放
    Web容器与Servlet
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/11549355.html
Copyright © 2020-2023  润新知