注:

  学习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)

 # coding:utf-8
import unittest,time
import requests
import re host = "http://192.168.0.175:8080" def login(s,username,psw):
url = host+"/login.jsp" headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
"Accept-Encoding": "gzip, deflate",
"Referer": host+"/zentao/user-login.html",
#"Cookie": # 头部没登录前不用传cookie,因为这里cookie就是保持登录的
"Connection": "keep-alive",
"Content-Type": "application/x-www-form-urlencoded",
} data = {'os_username': 'admin',
'os_password': '',
'os_destination': '',
'user_role': '',
'atl_token': '',
'login': '%E7%99%BB%E5%BD%95'
} # s = requests.session() 不要写死session r1 = s.post(url, data=data, headers=headers)
return r1.content def is_login_sucess(res):
if "登录失败,请检查您的用户名或密码是否填写正确。" in res:
return False
elif "parent.location=" in res:
return True
else:
return False if __name__ == "__main__":
s = requests.session()
a = login(s,"admin","")
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': '',
'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)

  结果得到返回参数

每天学一点,未来是你的

接口自动化测试unittest+request+excel(一)的更多相关文章

  1. 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)

    前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...

  2. 记录python接口自动化测试--unittest框架基本应用(第二目)

    在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用 ...

  3. python接口自动化测试(一)-request模块

    urllib.request模块是python3针对处理url的. 1. 首先导入: from urllib import request 2. 构造url,构造url的headers信息和传参[re ...

  4. python接口自动化测试 - unittest框架suite、runner详细使用

    test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 ...

  5. python接口自动化测试 - unittest框架基本使用

    unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/uni ...

  6. python+request+HTMLTestRunner+unittest接口自动化测试框架

    转自https://my.oschina.net/u/3041656/blog/820023 正在调研使用python进行自动化测试,在网上发现一篇比较好的博文,作者使用的是python3,但目前自己 ...

  7. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  8. 使用python+requests+unittest实现接口自动化测试

    这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下. 一.整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用. Common:公共方法:主要放 ...

  9. python3+requests+unittest:接口自动化测试(一)

    转载请表明出处:https://www.cnblogs.com/shapeL/p/9179484.html 简单介绍框架的实现逻辑,参考代码的git地址: https://github.com/zha ...

随机推荐

  1. 三角函数与JavaScript

     1. 三角函数 sin&(求对边与斜边的比值) cos&(邻边与斜边的比值) tan&(对边与邻边的比值) 2.JavaScript的函数的使用 Math.sin() Mat ...

  2. pickle 基础用法

    def save_obj_to_file(path, target_obj): file = open(path,'wb') pickle.dump(target_obj) file.close() ...

  3. cogs 80. 石子归并 动态规划

    80. 石子归并 ★★   输入文件:shizi.in   输出文件:shizi.out   简单对比时间限制:1 s   内存限制:128 MB 设有N堆沙(shi)子排成一排,其编号为1,2,3, ...

  4. JVM(十三):后端编译优化

    JVM(十三):后端编译优化 在 JVM(一):源文件的转变 中我们介绍了 Java 中的前端优化,即将 Java 源代码转换为字节码文件.在本文中,我们将介绍字节码文件如何转换为本地机器码,并如何对 ...

  5. Setup Factory 9 简单打包

    由于项目资源太大,使用VS自带打包工具无法实现需求,所以Setup Factory 9进行打包生成多个文件的方案,下面记录使用方法: 一:这里点击下载:下载,提取码:tt7a 二:下载完安装需要注册码 ...

  6. Android环境配置(Eclipse全开发环境下载)

    Android环境配置 前期准备 Android环境的Eclipse: 网站链接:https://www.runoob.com/w3cnote/android-tutorial-eclipse-adt ...

  7. JavaScript label语句

    使用label 语句可以在代码中添加标签,以便将来使用. 以下是label 语句的语法: label: statement 下面是一个示例: start: for (var i=0; i < c ...

  8. SCRUM的五个事件

    转自:http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html#tab-id-7 Scrum 使用固定的事件来产生规律性,以此来减 ...

  9. [python]多元赋值

    1. 简介 将多个变量同时赋值的方法,称为多元赋值. 2. 示例一: x, y, z = 1, 2, 'a string' print x, y, z 运行结果: 1 2 a string

  10. codeforces 591 E. Three States(bfs+思维)

    题目链接:http://codeforces.com/contest/591/problem/E 题意:有3个数字表示3个城市,每种城市都是相互连通的,然后不同种的城市不一定联通,'.'表示可以建设道 ...