多测师讲解 _接口自动化框架设计_高级讲师肖sir
背景:因为把传入接口参数、组建测试用例、执行测试用例和发送报告,都放入一个.py文件对于接口的使用非常不灵活就需要数据和接口业务进行分离让代码之间的 耦合性降低。和实现接口的分层管理,所以需要对代码进行封装处理。 接口分层思想: cms_api:组建并发送接口请求 config:放所有接口的入参信息 report:放置运行所有测试用例生成的报告 run:自动加载所有的测试用例、并且运行 testcase:继承unittest单元测试框架、组建接口测试用例 utils:工具类、发送邮件和生成报告模块
接口分层思想:
cms_api:组建并发送接口请求
config:放所有接口的入参信息
report:放置运行所有测试用例生成的报告
run:自动加载所有的测试用例、并且运行
testcase:继承unittest单元测试框架、组建接口测试用例
utils:工具类、发送邮件和生成报告模块
(1)接口自动化测试框架分层结构:
1.1 第一个模块 cofing
Cms_cofing 模块是存放接口的必要信息
组建接口:url地址,data、headers
下面我们定义了三个接口请求参数;
- # cms_api:组建并发送接口请求
- # config:放所有接口的入参信息
- # report:放置运行所有测试用例生成的报告
- # run:自动加载所有的测试用例、并且运行
- # testcase:继承unittest单元测试框架、组建接口测试用例
- # utils:工具类、发送邮件和生成报告模块
- # 构建一个接口请求需要哪些参数:
- # Cms环境中的接口
- # 1、登录接口
- logjump_url='http://129.226.122.199/:8080/cms/manage/loginJump.do'
- logjump_data={'userAccount': 'admin','loginPwd': 123456}
- logjump_headers={'Content-Type': 'application/x-www-form-urlencoded'}
- # 2、用户管理接口
- UserList_url='http://129.226.122.199:8080/cms/manage/queryUserList.do'
- UserList_data={'startCreateDate':'' ,
- 'endCreateDate':'',
- 'searchValue': '',
- 'page': 1}
- UserList_headers={'Content-Type': 'application/x-www-form-urlencoded'}
- # 3、搜索用户接口
- list_url='http://129.226.122.199:8080/cms/manage/queryUserList.do'
- list_data={'startCreateDate':'' ,
- 'endCreateDate':'' ,
- 'searchValue': 'ZSAN',
- 'page': 1}
- list_haeders={'Content-Type': 'application/x-www-form-urlencoded'}
1.2第二模块快 cms_api
- cms_api:组建并发送接口请求
- '''
- 组建接口的请求
- '''
- # 通过封装一个工具类来组建接口请求
- # import requests
- # session=requests.Session() #创建一个对象保持向下接口会话
- # from Cms_cofing.cmsapi import *
- # class C_api(object):
- # def __init__(self):
- # pass
- # def logjump(self): #构建了一个登录接口
- # rep=session.post(url=logjump_url,data=logjump_data,json=logjump_headers)
- # # return rep
- # # print(rep.text)
- # js=rep.json() #转换成为js格式
- # return js
- # def userlist(self):#用户管理接口
- # rep=session.post(url=UserList_url,data=UserList_data,json=UserList_headers)
- # # return rep
- # print(rep.text)
- # def list(self):#用户搜索接口
- # rep=session.post(url=list_url,data=list_data,json=list_haeders)
- # # return rep
- # print(rep.text)
- # if __name__ == '__main__':
- # cms=C_api()#创建一个对象
- # cms.logjump()#对象调用登录接口
- # cms.userlist()#对象调用用户管理接口
- # cms.list()#对象调用搜索接口
三、
- # testcase:继承unittest单元测试框架、组建接口测试用例
断言:
- # utils:工具类、发送邮件和生成报告模块\
coifng.ini文件
#python 中做关联接口
- import requests #接口模块
import re #正则匹配模块
class C_api: #定义一个类
def cs(self): # 省份接口
url='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince'
header={'Content-Type': 'application/x-www-form-urlencoded'}
rep=requests.post(url=url,data=header)
#print (rep.text) #拿到了所有的省
r =re.findall('<string>(.+?)</string>',rep.text)
# print type(r) #<type 'list'>
# 在当前路径中匹配一次或者多次对应的值,匹配到后不贪婪
return r
def fun(self): #城市接口
a =self.cs() #方法的传递
c_url='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity'
data={'byProvinceName':a[16]} #通过索引来取省份当中城市接口的入参
c_header={'Content-Type': 'application/x-www-form-urlencoded'}
rep=requests.post(url=c_url,data=data,json=c_header)
print (rep.text)
if __name__ == '__main__':
C =C_api() #创建一个对象
# C.cs()
C.fun() #对象调用城市接口
多测师讲解 _接口自动化框架设计_高级讲师肖sir的更多相关文章
- 多测师讲解接口测试 _linux中搭建环境cms_高级讲师肖sir
cms后台的搭建, 我们主要是用来做接口测试和接口自动化测试: 我们搭建的流程和之前搭建多有米一样: 后期给我们一个war包就要知道搭建一个文档: 要知道环境项目怎么讲? 讲解下搭建cms环境的流 ...
- 多测师讲解selenium—自动化测试课堂面试题总结—高级讲师肖sir
1.你有做过自动化?你用什么语言? python2.自动化中如何使用语言打开一个网址?浏览器,浏览器对应驱动,导入库,类,get,url3.在一个浏览器中打开多个窗口?open_windows dri ...
- 多测师讲解接口测试 _windows中搭建环境cms_高级讲师肖sir
eclipse集成开发环境 搭建开发环境需要安装的工具如下 jdk-8u60-windows-x64.exe jdk eclipse.rar 集成开发框架 mysql-inst ...
- 多测师讲解a'pi自动化框架设计思想_高级讲师肖sir
API自动化框架API自动化框架分为conf.data.utils.api.testcase.runner.report.log8个模块.conf是用来储存系统环境.数据库.邮件等的配置参数.项目的绝 ...
- 多测师讲解 _接口自动化框架设计分层思想(001)_高级讲师肖sir
第一层: 第二层:调用接口层 VOQGWBZYNBOAVZGE
- 多测师讲解自动化selenium___定位元素002___高级讲师肖sir
高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...
- 多测师浅谈 学员实现价值就是我们的幸福_高级讲师肖sir
学员实现价值就是我们的幸福 作为一名资深的IT高级讲师,在传统的行业IT薪资基本都是过万,作为一名IT培训教师,培养出在不同领域的测试,并且接触各种各样的产品,目前市场流行的比如银行业务系统,语音类系 ...
- 多测师讲解自动化_rf框架搭建_高级讲师肖sir
robot framework:自动化测试框架(简称RF框架) Python3.7 RIDE(可视化界面). Wxpython pip(在线下载) . setuptools(在线安装) . 第三方 ...
- 多测师讲解ui自动化框架设计思想_高级讲师肖sir
UI自动化框架:UI自动化框架可以分为8个模块,conf.data.public.pageobject.testcase.runner.report.log.conf是用来储存系统环境.数据库.邮件的 ...
随机推荐
- 在一张id连续的表中找出缺失的id
有这样一张表: create table tb_lostid( id number(6,0) primary key not null, name nvarchar2(20) not null ) 可 ...
- 20190918-03关机重启命令及修改root密码 000 006
(1)sync (功能描述:将数据由内存同步到硬盘中) (2)halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff) (3)reboot (功能描述:就是重启 ...
- zookeeper与分布式系统
1.1. 分布式系统基础知识 一个tomcat打天下的时代,不能说完全淘汰了,在一个管理系统,小型项目中还经常使用,这并不过分,出于成本的考虑,这反而值得提倡. 1.1.1. 分布式系统是什么 分 ...
- shell 逻辑判断
|| && 查了 Stack Overflow ||,表示或,从前往后执行,执行第一个真 &&,前者是真才会接着执行 ; 表示接着往下执行,不管前者如何 #!/bin/ ...
- touchstart 事件与 click 事件的冲突
const clickEvent = (function() { if ('ontouchstart' in document.documentElement === true) retu ...
- UBer面向领域的微服务体系架构实践
介绍 最近,人们对面向服务的系统架构和微服务系统架构的缺点进行了大量的讨论.尽管仅仅在几年前,由于微服务体系架构提供了许多好处,如独立部署的灵活性.明确的所有权.提高系统稳定性以及更好地分离关注点等, ...
- 第一次编程作业(My Own Score)
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE ...
- C语言汇总2
(10-15) 注释:1.单行注释可以嵌套单行注释 eg .//lalalal//lalalal(/后面都是注释完的) 2.多行注释可以嵌套单行注释 (两个**之间的都是注释的) 3.单行注释可以嵌套 ...
- JS 数组, 对象的增查改删(多语法对比)
数据结构横向对比, 增, 查, 改, 删 建议: 在用数据结构的时候, 优先考虑Map和Set(考虑数据的唯一性), 放弃传统的数组和Object, 特别是比较复杂的数据结构时 数组 Map与Arra ...
- java虚拟机小贴士之GC分析
打印日志 通过加入 -XX:+PrintGCDetails 参数则可以打印详细GC信息至控制台.参数-verbose:gc也是可以,但不够详细.通过加入-XX:+PrintGCDateStamps则可 ...