说完了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 接口自动化测试(四)的更多相关文章

  1. python接口自动化测试(四)-Cookie&Sessinon

    掌握了前面几节的的内容,就可以做一些简单的http协议接口的请求发送了,但是这些还不够.HTTP协议是一个无状态的应用层协议,也就是说前后两次请求是没有任何关系的,那如果我们测试的接口之前有相互依赖关 ...

  2. python接口自动化测试四:代码发送HTTPS请求

    HTTPS: get: url = 'https://www.juhe.cn/docs/api/id/39' r = requests.get(url)                       # ...

  3. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  4. 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 ...

  5. python接口自动化测试七:获取登录的Cookies

    python接口自动化测试七:获取登录的Cookies,并关联到下一个请求   获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...

  6. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  7. python 接口自动化测试(三)

    1.WriteIni.py import ConfigParser cf = ConfigParser.ConfigParser() cf.add_section("PC_WSDL" ...

  8. 记录python接口自动化测试--简单总结一下学习过程(第十目)

    至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有 ...

  9. python接口自动化测试框架实现之字符串插入变量(字符串参数化)

    问题: 在做接口自动化测试的时候,请求报文是json串,但是根据项目规则必须转换成字符串,然后在开头拼接“data=” 接口中很多入参值需要进行参数化. 解决方案: 1.Python并没有对在字符串中 ...

  10. python - 接口自动化测试 - RunTest - 测试用例加载执行/测试报告生成

    # -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: run_test.py @ide: PyCharm Com ...

随机推荐

  1. C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!

    说起异步,Thread,Task,async/await,IAsyncResult 这些东西肯定是绕不开的,今天就来依次聊聊他们 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部 ...

  2. Git学习之路(1)-Git简介

    ▓▓▓▓▓▓ 大致介绍 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds ...

  3. Windows 10 IoT Serials 4 - 如何在树莓派上使用Cortana语音助手

    从Windows 10 IoT Core 14986版本开始,微软已经加入Cortana语音助手功能.之前,我们只能使用本地语音识别,需要编写应用程序,下载到设备中才能实现.从现在开始,微软已经从系统 ...

  4. [TPYBoard-Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏

    一.实验器材 1.TPYboard V102板  一块 2.电位器   一个 3.1602 屏 一块 4.杜邦线:若干 二.电位器的使用 电位器 (英文:Potentiometer)是可变电阻器的一种 ...

  5. asp.net权限认证:Windows认证

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  6. java的位运算符

    1.与运算&,同为1为1,否则为0: 例如:10001(二进制)&10000(二进制)=10000(二进制) 2.或运算|,只要有1就是1: 例如:10001(二进制)&100 ...

  7. 谨慎能捕千秋蝉(二)——CSRF

    CSRF(Cross Site Request Forgery)跨站点请求伪造. CSRF的本质是当重要操作的参数都能被攻击者预测到,才能成功伪造请求. 一.场景演示 下图是一个伪造请求的场景,按顺序 ...

  8. WPScan初体验

    近日在朋友圈看某位dalao在Ubuntu上安装WPScan花了一个小时,于是洒家随手在Kali Linux上输入了wpscan,发现Kali里面已经装好了.于是决定玩两把WPScan. WordPr ...

  9. matlab 嵌套循环的学习

    循环嵌套带嵌套的循环一般为两重,举例1: disp('一个简单的二重for循环'); : : result = ii *jj ; fprintf(' %d * %d = %d \n',ii,jj,re ...

  10. 改变placeholder字体的颜色

    /* Mozilla Firefox 19+ */ ::-moz-placeholder { color: #f00; } /* IE9+版本 */ input:-ms-input-placehold ...