背景:因为把传入接口参数、组建测试用例、执行测试用例和发送报告,都放入一个.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的更多相关文章

  1. 多测师讲解接口测试 _linux中搭建环境cms_高级讲师肖sir

    cms后台的搭建, 我们主要是用来做接口测试和接口自动化测试: 我们搭建的流程和之前搭建多有米一样: 后期给我们一个war包就要知道搭建一个文档: 要知道环境项目怎么讲?   讲解下搭建cms环境的流 ...

  2. 多测师讲解selenium—自动化测试课堂面试题总结—高级讲师肖sir

    1.你有做过自动化?你用什么语言? python2.自动化中如何使用语言打开一个网址?浏览器,浏览器对应驱动,导入库,类,get,url3.在一个浏览器中打开多个窗口?open_windows dri ...

  3. 多测师讲解接口测试 _windows中搭建环境cms_高级讲师肖sir

    eclipse集成开发环境 搭建开发环境需要安装的工具如下 jdk-8u60-windows-x64.exe        jdk eclipse.rar      集成开发框架 mysql-inst ...

  4. 多测师讲解a'pi自动化框架设计思想_高级讲师肖sir

    API自动化框架API自动化框架分为conf.data.utils.api.testcase.runner.report.log8个模块.conf是用来储存系统环境.数据库.邮件等的配置参数.项目的绝 ...

  5. 多测师讲解 _接口自动化框架设计分层思想(001)_高级讲师肖sir

    第一层: 第二层:调用接口层 VOQGWBZYNBOAVZGE

  6. 多测师讲解自动化selenium___定位元素002___高级讲师肖sir

    高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...

  7. 多测师浅谈 学员实现价值就是我们的幸福_高级讲师肖sir

    学员实现价值就是我们的幸福 作为一名资深的IT高级讲师,在传统的行业IT薪资基本都是过万,作为一名IT培训教师,培养出在不同领域的测试,并且接触各种各样的产品,目前市场流行的比如银行业务系统,语音类系 ...

  8. 多测师讲解自动化_rf框架搭建_高级讲师肖sir

    robot framework:自动化测试框架(简称RF框架) Python3.7 RIDE(可视化界面).  Wxpython  pip(在线下载) . setuptools(在线安装) . 第三方 ...

  9. 多测师讲解ui自动化框架设计思想_高级讲师肖sir

    UI自动化框架:UI自动化框架可以分为8个模块,conf.data.public.pageobject.testcase.runner.report.log.conf是用来储存系统环境.数据库.邮件的 ...

随机推荐

  1. CentOS 7/8修改系统运行级别

    CentOS 7/8修改系统运行级别   CentOS 5. CentOS 6可以通过修改配置文件/etc/inittab 参数,从而修改系统运行级别,切换系统的runlevel,但是从CentOS ...

  2. 使用镜像安装cygwin、gcc并配置CLion IDE -2020.09.12

    使用镜像安装cygwin.gcc并配置CLion IDE -2020.09.12 Cygwin 官网:http://www.cygwin.com/ 下载64bit安装器,并打开选择next 尽量不要装 ...

  3. jni之jni与jna的比较

    java开发过程中会遇到需要调用c/c++动态库(windows平台的dll和linux平台的so)的情况,可以使用JNI或者JNA技术. JNA基于JNI技术开发,主要在上层作了类型自动转换的封装, ...

  4. shell数组的用法

    在shell里面想获取某个变量的值,使用$符开头,如:$a或者${a}即可. 获取数组长度 arr_length=${#arr_number[*]}或${#arr_number[@]}均可,即形式:$ ...

  5. 痞子衡嵌入式:IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link / CMSIS-DAP)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致. 做Cortex-M内核MCU嵌入式软件开发,可用的集成开发环境( ...

  6. 乔悟空-CTF-i春秋-Web-Not Found-🙋🏻‍♂️

    2020.09.08 又是匆匆忙忙的一天- 做题 题目 题目地址 做题 做题??做个屁,啥也不知道,干瞪眼

  7. [LeetCode]Mysql小本本

    常用方法 累加型题目,可以考虑使用笛卡尔积进行自表连接,连接后的表进行where条件进行筛选.group by分组操作. union:需要把两列作一列可以用union,union的两张表查询的字段不一 ...

  8. 【转】PostgreSQL Index性能调优

    Index(索引)这个概念对于很多熟悉关系型数据库的人来说,不是一个陌生的概念.当表中数据越来越多时,在查询时,为了避免全表查询(sequence scan)可以在查询相关的条件字段上添加索引.举例来 ...

  9. 使用eclipse启动tomcat,正常模式下可以启动tomcat,却在debug模式下无法启动tomcat 问题解决

    这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动设置了断点,导致tomcat不能正常启动. 解决方法把brea ...

  10. Spring Cloud实战 | 最终篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案

    一. 前言 在上一篇文章介绍 youlai-mall 项目中,通过整合Spring Cloud Gateway.Spring Security OAuth2.JWT等技术实现了微服务下统一认证授权平台 ...