python 接口自动化测试(四)
说完了SOAP协议的接口自动化
该说下http协议的接口测试了
HttpService.py
import requests
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" ) class HttpService():
def __init__(self,host,url):
self.host=host
self.url=url def httpReq(self,params,method="POST"):
requesturl=self.host+self.url
if(method == "POST"):
resp_data=requests.post(requesturl,params)
else:
resp_data=requests.get(requesturl)
resp=resp_data.text
return resp
这是http请求的实现类,运用了requests模块
之后就是在具体的执行文件中调用上面的HttpService.py
在RunMain.py中添加方法:
def runHttpTest(ip,list,serviceClass):
length=len(list)
#实现控制台输出执行进度
widgets = [ip+' Progress: ', Percentage(), ' ', Bar(marker=RotatingMarker('>')),
' ', ETA()]
pbar = ProgressBar(widgets=widgets, maxval=length).start()
for i in range(length):
pbar.update(i+1)
try:
#实例化类的对象
runhttptest = serviceClass(ip,str(list[i][0]))
if(str(list[i][2]) == "GET"): #判断http请求的方法
test_rep=runhttptest.httpReq(None,"GET")
DataEngine.httpGetResultCheck(test_rep,xlw,list,i) #返回结果判断
else:
dict=eval(str(list[i][2]))
test_rep=runhttptest.httpReq(dict)
DataEngine.httpResultCheck(test_rep,xlw,list,i) except Exception,e:
print(str(list[i][1])+"\t"+str(e))
Logging.writeException(e)
pbar.finish()
由于接口返回结果和SOAP接口的返回结果类型不一致,所以DataEngine.py中的结果处理方法就要做一些扩展,由于时间关系,我这边就直接另写了两个方法进行结果断言处理
def httpResultCheck(test_rep,xlw,list,xls_row):
global COUNT_ROWs
result=test_rep.find(',"status":1',22)
if(result != -1):
xlw.write_HttpResult(COUNT_ROWs,list,xls_row,True)
COUNT_ROWs=COUNT_ROWs+1
else:
Logging.writeHttpLog(str(list[xls_row][1]),str(test_rep))
xlw.write_HttpResult(COUNT_ROWs,list,xls_row,False)
COUNT_ROWs=COUNT_ROWs+1 def httpGetResultCheck(test_rep,xlw,list,xls_row):
global COUNT_ROWs
test_rep=json.loads(test_rep)
result=test_rep['status']
if(result == 1):
xlw.write_HttpResult(COUNT_ROWs,list,xls_row,True)
COUNT_ROWs=COUNT_ROWs+1
else:
Logging.writeHttpLog(str(list[xls_row][1]),str(test_rep))
xlw.write_HttpResult(COUNT_ROWs,list,xls_row,False)
COUNT_ROWs=COUNT_ROWs+1
以上就是所有的代码添加:
执行后结果输出见下图:
其中执行失败的用例,会以红色醒目标识出来,并在其后输出具体的中文用例描述
如有问题,欢迎交流
python 接口自动化测试(四)的更多相关文章
- python接口自动化测试(四)-Cookie&Sessinon
掌握了前面几节的的内容,就可以做一些简单的http协议接口的请求发送了,但是这些还不够.HTTP协议是一个无状态的应用层协议,也就是说前后两次请求是没有任何关系的,那如果我们测试的接口之前有相互依赖关 ...
- python接口自动化测试四:代码发送HTTPS请求
HTTPS: get: url = 'https://www.juhe.cn/docs/api/id/39' r = requests.get(url) # ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- python 接口自动化测试(三)
1.WriteIni.py import ConfigParser cf = ConfigParser.ConfigParser() cf.add_section("PC_WSDL" ...
- 记录python接口自动化测试--简单总结一下学习过程(第十目)
至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有 ...
- python接口自动化测试框架实现之字符串插入变量(字符串参数化)
问题: 在做接口自动化测试的时候,请求报文是json串,但是根据项目规则必须转换成字符串,然后在开头拼接“data=” 接口中很多入参值需要进行参数化. 解决方案: 1.Python并没有对在字符串中 ...
- python - 接口自动化测试 - RunTest - 测试用例加载执行/测试报告生成
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: run_test.py @ide: PyCharm Com ...
随机推荐
- EM算法 大白话讲解
假设有一堆数据点,它是由两个线性模型产生的.公式如下: 模型参数为a,b,n:a为线性权值或斜率,b为常数偏置量,n为误差或者噪声. 一方面,假如我们被告知这两个模型的参数,则我们可以计算出损失. 对 ...
- UOJ #278. 【UTR #2】题目排列顺序(排序水题)
#278. [UTR #2]题目排列顺序 丢个传送门:http://uoj.ac/problem/278 描述 “又要出题了.” 宇宙出题中心主任 —— 吉米多出题斯基,坐在办公桌前策划即将到来的 U ...
- win10环境下python3.5安装步骤
点我去Python官网下载 往下翻几页就能看到各种版本的Python,当前最新的是Python3.6,也没多大区别,我选择的是3.5.2 64位的,点击download 根据自己的电脑配置,我选择的是 ...
- C# 结构体 枚举类型
注意:枚举类型和结构体都属于值类型. 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的方法: struct student { public int nianl ...
- 读书笔记 effective c++ Item 5 了解c++默认生成并调用的函数
1 编译器会默认生成哪些函数 什么时候空类不再是一个空类?答案是用c++处理的空类.如果你自己不声明,编译器会为你声明它们自己版本的拷贝构造函数,拷贝赋值运算符和析构函数,如果你一个构造函数都没有声 ...
- 腾讯优图及知脸(ZKface)人脸比对接口测试(python)
一.腾讯优图 1.开发者地址:http://open.youtu.qq.com/welcome/developer 2.接入流程:按照开发者页面的接入流程接入之后,创建应用即可获得所需的AppID.S ...
- 自己动手系列——实现一个简单的LinkedList
LinkedList与ArrayList都是List接口的具体实现类.LinkedList与ArrayList在功能上也是大体一致,但是因为两者具体的实现方式不一致,所以在进行一些相同操作的时候,其效 ...
- Windows 10 IoT Serials 6 - 如何修改IoTStartupOnBoot.cmd文件
使用Windows 10 IoT Core系统的朋友应该会比较熟悉IoTStartupOnBoot.cmd文件,该文件是系统启动以后加载的批处理文件,一般会包含应用.服务和后台的启动,比如WinRM. ...
- MongoDB学习总结(五) —— 安全认证
作为数据库软件,我们要确保数据的安全,不是谁都可以访问的,所以mongodb也像其他的数据库软件一样可以采用用户验证的方法, mongodb 3.0之前的版本提供了addUser方法向不同的数据库添加 ...
- 遍历hashMap对效率的影响
测试环境:jdk1.7.0_79\Processor 1.7 GHz Intel Core i5 遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value. 写了两个方法: pu ...