注:

  学习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. Linux文件及目录管理

    1.Linux文件目录树 /:根目录,linux文件系统的最顶端和入口 bin:存放用户二进制文件(如:ls,cd,mv等),实则/user/bin的硬链接(相当于Windows系统的快捷方式) bo ...

  2. 想转行大数据,开始学习 Hadoop?

    学习大数据首先要了解大数据的学习路线,首先搞清楚先学什么,再学什么,大的学习框架知道了,剩下的就是一步一个脚印踏踏实实从最基础的开始学起. 这里给大家普及一下学习路线:hadoop生态圈——Strom ...

  3. Mock Server的搭建

    一.概述 我们系统与第三方开票系统有交互,场景是我们系统请求第三方开票系统,第三方开票系统根据我们的请求数据,生成开票信息然后返回发票号或异常信息,我们根据返回的信息做对应的处理.因为配合上存在一些障 ...

  4. 洛谷 P2016 战略游戏

    题意简述简述 求一棵树的最小点覆盖 题解思路 树形DP dp[i][0]表示第i个点覆盖以i为根的子树的最小值,且第i个点不放士兵 dp[i][1]表示第i个点覆盖以i为根的子树的最小值,且第i个点放 ...

  5. GOF23-单列模式

    1.什么是单例模式 一个类只有一个实列,并且提供一个对外访问该实例的全局访问点. 常见应用场景:数据库连接池,项目中读取配置文件的类,servlet也是单列,Spring中的Bean默认也是单列 2. ...

  6. windows 下 ctags 安装以及 tags 目录创建

    最近处理 .as 格式代码,需要转换成 c# 格式, 用 VS 查看,无法跳转,十分蛋疼,又用起了好久没用的 VIM,配置 tags 文件,实现自动跳转. 1.下载ctag文件http://ctags ...

  7. Python面试总结篇

    Python Coding Interview Questions and Answers 面试题一:逻辑运算赋值 v1 = 1 or 9 v2 = 0 or 9 # print(v1, v2)会输出 ...

  8. eShopOnContainers部署在docker的坑

    把eShopOnContainers(.net core 的版本是2.1)下载之后,部署到docker上,查看容器eShopOnContainers的项目都部署上去了. 用http://localho ...

  9. (六)分布式通信----MessagePack序列化

    1. .Net Core的序列化方式 1.1 json.Net 常用的工具包,如Newtonsoft.Json, 它是基于json格式的序列化和反序列化的组件 json.net 有以下优点: 侵入性: ...

  10. gin-jwt对API进行权限控制

    前言 之前文章简单介绍了如何运行gin+vue的前后端分离开源项目,该项目是学习了Gin实践教程后结合vue-element-admin写的,该教程讲得很详细,适合入门Gin.本篇文章将介绍gin+v ...