接口自动化测试unittest+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)
# 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(一)的更多相关文章
- 记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)
前面补充了如何来操作excel文件,这次把如何获取excel文件的sheet对象.行数.单元格数据的方法进行封装,方便后面调用 handle_excel.py# coding:utf-8 import ...
- 记录python接口自动化测试--unittest框架基本应用(第二目)
在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用 ...
- python接口自动化测试(一)-request模块
urllib.request模块是python3针对处理url的. 1. 首先导入: from urllib import request 2. 构造url,构造url的headers信息和传参[re ...
- python接口自动化测试 - unittest框架suite、runner详细使用
test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 ...
- python接口自动化测试 - unittest框架基本使用
unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/uni ...
- python+request+HTMLTestRunner+unittest接口自动化测试框架
转自https://my.oschina.net/u/3041656/blog/820023 正在调研使用python进行自动化测试,在网上发现一篇比较好的博文,作者使用的是python3,但目前自己 ...
- 【python3+request】python3+requests接口自动化测试框架实例详解教程
转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...
- 使用python+requests+unittest实现接口自动化测试
这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下. 一.整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用. Common:公共方法:主要放 ...
- python3+requests+unittest:接口自动化测试(一)
转载请表明出处:https://www.cnblogs.com/shapeL/p/9179484.html 简单介绍框架的实现逻辑,参考代码的git地址: https://github.com/zha ...
随机推荐
- stm8s和stm8l低功耗对比
在低功耗应用中,一般来说mcu是常态halt模式,然后偶尔被唤醒(外部中断或者内部定时唤醒)进入运行模式.所以对比低功耗性能,一般来说只需要对比run模式和halt下的功耗即可,因为项目选用的是通过内 ...
- Executor线程池只看这一篇就够了
线程池为线程生命周期的开销和资源不足问题提供了解决方 案.通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上. 线程实现方式 Thread.Runnable.Callable //实现Runn ...
- Linux--shell数组和字符串--09
一.数组 数组就是一段连续的变量,一段连续的内存存储空间,为了解决变量过多的问题,在同一类变量中,我们不需要去定义多个名字,而是以数组的方式来定义 1.定义数组 declare -a 定义数组 dec ...
- 关于selenium自动化对iframe内嵌元素的处理
今天上班闲来无聊,于是来练练自动化,结果碰上了可恶的iframe,楼主,以前也遇到过,但是一直也没搞懂怎么处理的,都是抄别人的代码,今天决定独立解决试试.首先先来认识什么是iframe,它就长下图这样 ...
- ASP.NET Core 2.2 : 二十六. 应用JWT进行用户认证
本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案(ASP.NET Core 系列目录) 一.什么是JWT? JWT(json web token ...
- Spring数据库连接
1.C3P0数据库连接 2.DBCP数据库连接 3.Druid数据库连接 C3P0数据库连接: 1.先到(http://www.mvnrepository.com/)Maven网址找到C3P0的数据源 ...
- Python处理NetCDF格式数据为TIFF数据(附脚本代码)
博客小序:NetCDF格式数据广泛应用于科学数据的存储,最近几日自己利用python处理了一些NetCDF数据,特撰此博文以记之. 参考博客: https://www.cnblogs.com/shou ...
- 【sybase】You can’t run SELECT INTO in this database的解决办法
进入master 数据库,使用sp_dboption test ,'select into',true命令(其中test为要设置可用的数据库)
- HTML 画布(摘自菜鸟教程)
颜色.样式和阴影 属性 描述 fillStyle 设置或返回用于填充绘画的颜色.渐变或模式. strokeStyle 设置或返回用于笔触的颜色.渐变或模式. shadowColor 设置或返回用于阴影 ...
- jasypt
jasypt-1.9.0.jar import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; public class EncryptUt ...