zoukankan      html  css  js  c++  java
  • 接口自动化测试 python+request+excel(一)

    注:

      学习python自动化测试,需要先学习python基础,主要还是多敲代码,多联系,孰能生巧,你也会是一名合格的程序员

      python基础学习:

        http://c.biancheng.net/python/

        https://www.runoob.com/python3/python3-tutorial.html

    编写接口自动化测试,你要了解掌握他的库,比如下面最重要的两个库,unittest和requests;

      官方文档:https://docs.python.org/3/library/unittest.html    unittest

      官方文档:http://2.python-requests.org/zh_CN/latest/user/quickstart.html  requests

    掌握这两个库,相信做接口测试是完全没问题的。

    接口测试post(接口测试有很多种写法,能成功就OK)

     1 # coding:utf-8
     2 import unittest,time 
     3 import requests
     4 import re
     5 
     6 host = "http://192.168.0.175:8080"
     7 
     8 
     9 def login(s,username,psw):
    10         url = host+"/login.jsp"
    11 
    12         headers = {
    13         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
    14         "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    15         "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
    16         "Accept-Encoding": "gzip, deflate",
    17         "Referer": host+"/zentao/user-login.html",
    18         #"Cookie":  # 头部没登录前不用传cookie,因为这里cookie就是保持登录的
    19         "Connection": "keep-alive",
    20         "Content-Type": "application/x-www-form-urlencoded",
    21         }
    22 
    23         data = {'os_username': 'admin',
    24                 'os_password': '123456',
    25                 'os_destination': '',
    26                 'user_role': '',
    27                 'atl_token': '',
    28                 'login': '%E7%99%BB%E5%BD%95'
    29                 }
    30 
    31         # s = requests.session()   不要写死session
    32 
    33         r1 = s.post(url, data=data, headers=headers)
    34         return r1.content
    35 
    36 def is_login_sucess(res):
    37         if "登录失败,请检查您的用户名或密码是否填写正确。" in res:
    38                 return False
    39         elif "parent.location=" in res:
    40                 return True
    41         else:
    42                 return False
    43 
    44 if __name__ == "__main__":
    45         s = requests.session()
    46         a = login(s,"admin","123456")
    47         print(is_login_sucess(a))    

    封装接口:post和get(要搭建接口自动化测试框架,进行封装可以更加方便)

    import requests
    import json
    class RunMain:
        def send_get(self, url, data):
            res = requests.get(url=url, params=json.dumps(data).json()
            return res
    
        def send_post(self, url, data):
            res =requests.post(url=url, data=json.dumps(data)).json()
            return res
    
        def run_main(self, url, method, data=None):
            if method == 'POST':
                res = self.send_post(url, data)
            else:
                res = self.send_get(url, data)
            return res
    
    if __name__ == "__main__":
        url = 'http://192.168.0.157:18005/oauth/token'
        data = {
                'clientId': 'XXXXXXXXXXXXXXXXX',
                'password': '123456',
                'userName': 'admin',
                'VerificationCode': '',
                'VerificationCodeKey': "XXXXXXXXXXXXXXXXXX"
            }
        test = RunMain()
        print(test.run_main(url, 'POST', data))

    运行可以得出返回参数

     返回参数还可以进行美化,就像Navicat一样

    class RunMain:
        def send_get(self, url, data):
            res = requests.get(url=url, params=data).json()
            #return res
            return json.dumps(res, indent=2, sort_keys=False, ensure_ascii=False)
    
        def send_post(self, url, data):
            res =requests.post(url=url, data=json.dumps(data)).json()
            #return res
            return json.dumps(res,indent=2, sort_keys=False, ensure_ascii=False)
    

      结果得到返回参数

     每天学一点,未来是你的

  • 相关阅读:
    (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
    UVA 230 Borrowers (STL 行读入的处理 重载小于号)
    UVA 12100 打印队列(STL deque)
    uva 12096 The SetStack Computer(STL set的各种库函数 交集 并集 插入迭代器)
    uva 1592 Database (STL)
    HDU 1087 Super Jumping! Jumping! Jumping!
    hdu 1176 免费馅饼
    HDU 1003 Max Sum
    转战HDU
    hust 1227 Join Together
  • 原文地址:https://www.cnblogs.com/hemingwei/p/11543243.html
Copyright © 2011-2022 走看看