python web自动化测试框架搭建(功能&接口)——接口公共方法
接口公共方法有:数据引擎、http引擎、Excel引擎
1、数据引擎:获取用例、结果检查、结果统计
# -*- coding:utf-8 -*-
from XlsEngine import XlsEngine_rd
import os '''获取用例'''
def getCase():
filepath = os.path.abspath('.')
filename = filepath + "/interfacetest/Data/InterfaceData.xlsx"
data = XlsEngine_rd(filename)
data.xlrd_open()
sheet = data.xlrd_object.sheet_by_index(0)
rows = sheet.nrows
domain = sheet.cell_value(1,1)
header_temp = sheet.cell_value(2,1)
header=eval(header_temp)
case_list=[]
for i in range(3,rows):
case_list.append(sheet.row_values(i))
return domain,case_list,header '''结果检查'''
def resultCheck(actual_result, expect_result):
result = "Failed"
actualre = actual_result.content
area = (expect_result.split(':'))[0]
expect = (expect_result.split(':'))[1]
if area == "response_code":
if str(actual_result.status_code) == expect:
result = "Pass"
actualre = "response_code:"+expect
if area == "content":
expect = expect_result.replace("content:","").encode('utf-8')
actual = actual_result.content
if expect in str(actual):
result = "Pass"
actualre = expect
return result,actualre '''结果统计'''
def countResult(resultlist):
passcount=0
failcount=0
for result in resultlist:
if result[5] == 'Pass':
passcount+=1
else:
failcount+=1
return passcount,failcount
2、http引擎,用于发送请求和响应接收,提供登录方法,供需要登录的接口调用
# -*- coding:utf-8 -*-
import requests def getData(s, url, data, header, method):
re=object
isexcept = False
if method == "post":
try:
re = s.post(url, headers=header, data=data)
except requests.exceptions.ConnectionError,e:
re = e
isexcept = True if method == "get":
try:
re = s.get(url, headers=header, data=data)
except requests.exceptions.ConnectionError,e:
re = e
isexcept = True if method == "delete":
try:
re = s.delete(url+"/"+data)
except requests.exceptions.ConnectionError,e:
re = e
isexcept = True if method == "put":
try:
re = s.put(url)
except requests.exceptions.ConnectionError,e:
re = e
isexcept = True return re,isexcept def login():
s=object
isexcept = False
try:
url="http://baidu.com/login"
header = {"Referer": "http://baidu.com"}
data={"username":"admin", "password":"xxx"}
s=requests.Session()
s.post(url, headers=header, data=data)
except requests.exceptions.ConnectionError,e:
s=e
isexcept = True
return s, isexcept
3、Excel引擎:excel文件操作
# coding=utf-8
import xlrd
import xlwt class XlsEngine_rd(): def __init__(self, filename):
self.xls_name = filename
self.xlrd_object = None
self.xlwt_object = None
self.isopenfailed = True def xlrd_open(self):
try:
#xlrd.Book.encoding="utf-8"
self.xlrd_object = xlrd.open_workbook(self.xls_name)
self.isopenfailed = False
except Exception,e:
self.isopenfailed = True
self.xlrd_object = None
print(e)
return [self.isopenfailed, self.xlrd_object]
python web自动化测试框架搭建(功能&接口)——接口公共方法的更多相关文章
- python web自动化测试框架搭建(功能&接口)——接口用例实现
测试用例基类: # coding=utf-8 import unittest import Logger log = Logger.Loger() class BaseCase(unittest.Te ...
- python web自动化测试框架搭建(功能&接口)——接口测试模块
Python接口测试采用python读取excel的方法,通过requests库发送请求和接收响应.模块有: Data:用于存放excel用例的,用例格式: iutil: 接口公共方法,数据引擎.ht ...
- python web自动化测试框架搭建(功能&接口)——功能测试模块
功能测试使用selenium,模块有: 1.futil: 公共方法,如元素高亮显示 # coding=utf-8 """高亮显示元素""" ...
- python web自动化测试框架搭建(功能&接口)——测试用例执行和结果收集
由于unittest框架中结果收集在不同文件中,所以此处重写结果收集方法,加入执行时间,失败信息,失败截图等 TestRunner.py # coding=utf-8 import sys impor ...
- python web自动化测试框架搭建(功能&接口)——通用模块
1.通用模块: config.conf: 公共配置文件,配置报告.日志.截图路径,以及邮件相关配置 [report] reportpath = E:\workspace\WebAutomation\s ...
- Python web自动化测试框架搭建(功能&接口)——unittest介绍
Python UnitTest测试框架介绍 1) TestCase:所有测试用例类继承的基本类, TestCase的实例就是测试用例 2) TestSuite:测试套件 ...
- python web自动化测试框架搭建(功能&接口)——环境搭建
自动化测试框架一般需要实现以下通用功能 执行前准备 结束后清理 执行步骤输出 执行结果输出 错误.失败截图 测试报告 发送邮件 日志 需要的软件和python第三方库有: 通用: JDK Eclips ...
- 基于python的自动化测试框架搭建
滴~ 今日打卡! 好多天没来打卡了.博主最近一直在把碎片化知识转化为知识体系的过程中挣扎.Python语言.selenium.unittest框架.HTMLTestRunner框架都有所了解,也写 ...
- selenium +python web自动化测试环境搭建
基础框架搭建 1.安装python 2.安装selenium cmd输入pip install selenium 问题:在python中输入from selenium import webdriver ...
随机推荐
- Spring IoC,IoC原理
一.IoC概念及原理 IOC的别名:依赖注入(DI) 2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么到底是“哪些方面的控制被反转了呢?”,经过详细地分析和论证后,他 ...
- css-sprite 雪碧图的使用,合并多张小图,背景图片当按钮的设置
背景图片基础: 使用background-image来设置背景图片 语法: background-image:url(相对与css的路径) 如果背景图片大于元素,默认会显示图片的左上角 如果背景图片和 ...
- [BZOJ3203] [SDOI2013]保护出题人(二分+凸包)
[BZOJ3203] [SDOI2013]保护出题人(二分+凸包) 题面 题面较长,略 分析 对于第i关,我们算出能够打死前k个个僵尸的最小能力值,再取最大值就可以得到\(y_i\). 前j-1个僵尸 ...
- C#设计模式:职责链模式(Chain of Responsibility)
一,什么是职责链模式(Chain of Responsibility) 职责链模式是一种行为模式,为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求.将这些对象连接成一条链,并沿着 ...
- Anaconda 安装及Python 多版本间切换
安装 Anaconda 安装anaconda 安装较为简单,这里参考官方文档:https://docs.continuum.io/anaconda/install/linux.html 在文件目录下执 ...
- python-条件判断
条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= ...
- alert(1) to win 9
function escape(s) { function htmlEscape(s) { return s.replace(/./g, function(x) { return { '<': ...
- [CSS]CSS中使用span和div遇到的问题
一. span和div的区别 1.span是行级元素,div是块级元素2.span占用的宽度是内容的宽度,而div默认是一行.所以一般在页面中,只有一行或不到一行文字用span,元素占据多行时用div ...
- JS基础入门篇(七)—运算符
1.算术运算符 1.算术运算符 算术运算符:+ ,- ,* ,/ ,%(取余) ,++ ,-- . 重点:++和--前置和后置的区别. 1.1 前置 ++ 和 后置 ++ 前置++:先自增值,再使用值 ...
- Tomcat的作用思考及NIO在Tomcat中的应用模型
Tomcat的作用 平时写完web程序都是直接点击启动,就可以在本机浏览器访问了.但是仔细想想,我们似乎都没有写过浏览器与servlet通信的代码,也没有写过创建request.reponse的代码. ...