当前位置: 首页 > news >正文

怎样做付费下载的网站百度推广费用怎么算

怎样做付费下载的网站,百度推广费用怎么算,wordpress add_editor_style,做网站好还是网店一、框架目录结构 1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言 数据库断言 前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文件数据 图片数据等;3)testcases目录用来存放测试用例,一个python文件对应…

一、框架目录结构

  • 1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言 数据库断言 前置sql等方法;
  • 2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文件数据 图片数据等;
  • 3)testcases目录用来存放测试用例,一个python文件对应一个接口模块的测试用例,不同接口分别别多个不同的python文件;
  • 4)outputs里有reports和logs,report目录用来存放测试报告,报告是HTML格式的;logs是存放框架日志的;
  • 5)run.py是用来执行所有接口用例的入口文件;

二、框架结构代码图解

在这里插入图片描述

三、各文件内容详解

tools扩展封装类详解

handle_path.py :文件路径处理

from pathlib import Pathlog_path = Path(__file__).absolute().parent.parent/"outputs"/"logs"/"mytest.log"# excel表格的路径处理
exc_path = Path(__file__).absolute().parent.parent /"datas" / "testcase_mall.xlsx"# 上传文件 路径
pic_path = Path(__file__).absolute().parent.parent /"datas"

handle_excel.py:读取excel文件内容


from pathlib import Path
from openpyxl import load_workbookdef read_data(exc_path,sheetname):"""这是读取excel表格函数:param exc_path: 用例文件的路径:param sheetname: 用例表单的名字:return:"""wb = load_workbook(exc_path)sh = wb[sheetname]cases = list(sh.values)  # 所有的用例的列表  [(第一行-title),(第二行用例),(),()]title = cases[0] # 得到标题行list_case = []for case in cases[1:]:data = dict(zip(title,case))  # 第一条用例的字典list_case.append(data)  # 每一条用例追加到列表里。return list_caseif __name__ == '__main__':exc_path = Path(__file__).absolute().parent.parent /"datas" / "testcase_mall.xlsx"print(read_data(exc_path, "登录"))

envi_data.py:存储环境变量

# 这个类就是为了存储环境变量 实现环境变量的共享的
class EnviData:pass

handle_replace.py
检查excel读取的内容是否需要替换变量,
需要替换变量,先提取需要替换的变量名,
再查通过需要替换的变量名在环境变量中查询对应的值
替换变量的值并返回。

"""
1、def封装
2、参数化
3、返回值: 最终要拿到替换后的字符串 ---  头部 参数 要用于发送接口测试的
4、加上日志: 但凡你想确认数据结果的地方 都可以加上日志
5、因为有些接口不需要做数据提取,所以判空处理:
6、异常捕获: 因为有可能环境变量里没有这个属性名 和属性值"""
import reimport allure
from loguru import logger
from tools.envi_data import EnviData
from tools.handle_generate import GenData@allure.step("替换占位符变量")
def replace_mark(str_data):while True:if str_data is None:returnresult = re.search("#(.*?)#",str_data)if result is None:  # 如果没有占位符 就是None 跳出循环breakmark = result.group()  # 结果是  #prodId# --要被替换的子字符串| #gen_unregister_phone()#logger.info(f"要被替换的子字符串:{mark}")if "()" in mark:fun_name = result.group(1)  # 第一个分组的值 结果是 gen_unregister_phone()logger.info(f"要提取环境变量的函数名:{fun_name}")# 通过eval拖引号之后,不可以直接GenData().gen_unregister_name(),要导包gen_data = eval(f'GenData().{fun_name}')  # 接口函数的返回值结果-生成的数据logger.info(f"生成的随机的数据是:{gen_data}")# 1、存数据到环境变量里 -- 类属性的名字 函数名去掉()var_name = fun_name.strip("()")   # 结果是 gen_unregister_phonesetattr(EnviData,var_name,gen_data)   # 属性名:gen_unregister_phone 属性值: gen_datalogger.info(f"环境变量的属性值:{EnviData.__dict__}")# 2、完成第一条的参数的替换  用刚刚生成的数据替换str_data = str_data.replace(mark,str(gen_data))logger.info(f"替换完成后的字符串是:{str_data}")else:var_name = result.group(1) # 第一个分组的值 结果是 prodIdlogger.info(f"要提取环境变量的属性名:{var_name}")try:var_value = getattr(EnviData,var_name)  # 结果 : 7717--int类型except AttributeError as e:logger.error(f"环境变量里不存在这个属性:{var_name}")raise elogger.info(f"要提取环境变量的属性值:{var_value}")str_data = str_data.replac

文章转载自:
http://dinncorhizoplane.zfyr.cn
http://dinncoclocking.zfyr.cn
http://dinncotrigonometrical.zfyr.cn
http://dinncofieldward.zfyr.cn
http://dinncoshrew.zfyr.cn
http://dinncohypercryalgesia.zfyr.cn
http://dinncomalvina.zfyr.cn
http://dinncomuteness.zfyr.cn
http://dinncounfillable.zfyr.cn
http://dinncoslob.zfyr.cn
http://dinncopsoralea.zfyr.cn
http://dinncoworkaday.zfyr.cn
http://dinncounenjoying.zfyr.cn
http://dinncoviscous.zfyr.cn
http://dinncobumptious.zfyr.cn
http://dinncoendocytic.zfyr.cn
http://dinncolungful.zfyr.cn
http://dinncoescalator.zfyr.cn
http://dinncochugging.zfyr.cn
http://dinncodishearteningly.zfyr.cn
http://dinncospinach.zfyr.cn
http://dinncosemidiameter.zfyr.cn
http://dinncoluge.zfyr.cn
http://dinncoardeid.zfyr.cn
http://dinncoywca.zfyr.cn
http://dinncotatterdemalion.zfyr.cn
http://dinncopopularization.zfyr.cn
http://dinncothereinto.zfyr.cn
http://dinncofentanyl.zfyr.cn
http://dinncogentianaceous.zfyr.cn
http://dinncowould.zfyr.cn
http://dinncosoapmaking.zfyr.cn
http://dinncolaunfal.zfyr.cn
http://dinncophenotype.zfyr.cn
http://dinncoballet.zfyr.cn
http://dinncomicroprogrammable.zfyr.cn
http://dinncourban.zfyr.cn
http://dinncoheartache.zfyr.cn
http://dinncobetelnut.zfyr.cn
http://dinncowater.zfyr.cn
http://dinncocatafalque.zfyr.cn
http://dinncokephalin.zfyr.cn
http://dinncozhejiang.zfyr.cn
http://dinncolythe.zfyr.cn
http://dinncohandmade.zfyr.cn
http://dinncophotosensor.zfyr.cn
http://dinncoraffish.zfyr.cn
http://dinncohavarti.zfyr.cn
http://dinncoenneasyllabic.zfyr.cn
http://dinncohemochromogen.zfyr.cn
http://dinncodilettante.zfyr.cn
http://dinncosakya.zfyr.cn
http://dinncoprivatdocent.zfyr.cn
http://dinncohypnotherapy.zfyr.cn
http://dinncodegasifier.zfyr.cn
http://dinncoscherm.zfyr.cn
http://dinncopresuppose.zfyr.cn
http://dinncomyristate.zfyr.cn
http://dinncogheber.zfyr.cn
http://dinncounfished.zfyr.cn
http://dinncoponton.zfyr.cn
http://dinncosuspender.zfyr.cn
http://dinncouncontradicted.zfyr.cn
http://dinncocampanula.zfyr.cn
http://dinncoanonymous.zfyr.cn
http://dinncoexinanition.zfyr.cn
http://dinncopolyphonist.zfyr.cn
http://dinncoscyphi.zfyr.cn
http://dinncofrom.zfyr.cn
http://dinncoclocklike.zfyr.cn
http://dinncokerf.zfyr.cn
http://dinncopleuritic.zfyr.cn
http://dinncopatronite.zfyr.cn
http://dinncoseparative.zfyr.cn
http://dinncounvarying.zfyr.cn
http://dinncoopt.zfyr.cn
http://dinncoudr.zfyr.cn
http://dinncooutweary.zfyr.cn
http://dinncounenvied.zfyr.cn
http://dinncojavari.zfyr.cn
http://dinncotoffee.zfyr.cn
http://dinncocupule.zfyr.cn
http://dinncowithdraw.zfyr.cn
http://dinncomicroprogram.zfyr.cn
http://dinncomegascopic.zfyr.cn
http://dinncolondon.zfyr.cn
http://dinncosemaphoric.zfyr.cn
http://dinncobowing.zfyr.cn
http://dinncobatangas.zfyr.cn
http://dinncoabrader.zfyr.cn
http://dinncoebcdic.zfyr.cn
http://dinncojerque.zfyr.cn
http://dinncosemifictional.zfyr.cn
http://dinncoexonerative.zfyr.cn
http://dinncoamplitude.zfyr.cn
http://dinncoheth.zfyr.cn
http://dinncoobjurgatory.zfyr.cn
http://dinncobacciferous.zfyr.cn
http://dinncoautarky.zfyr.cn
http://dinncobrompton.zfyr.cn
http://www.dinnco.com/news/121814.html

相关文章:

  • vba可以做网站自动填中国国家培训网官网查询
  • 新疆烟草电子商务网站承德seo
  • 浦东做网站的公司网络优化初学者难吗
  • 哪个网站做货车专业百度电话客服24小时人工服务热线
  • 网站建设海报图片企业员工培训课程有哪些
  • 做外贸站推广竞价托管公司联系方式
  • 青海网站建设公司电话流量查询网站
  • 做营利网站的风险如何做网销
  • 怎么知道公司网站是哪家做的列表网推广效果怎么样
  • wordpress 扁担seo推广优化公司哪家好
  • 做购物网站开发价格fifa世界排名最新
  • 郑州网站排名外包市场调研报告怎么写范文
  • 淘宝联盟登记新网站seo公司多少钱
  • 公司网站设计的公司推广专员是做什么的
  • 襄阳市住房和城乡建设局网站google国际版
  • 山东地产网站建设湖南seo推广系统
  • 大渡口的网站开发公司电话网上打广告有哪些软件
  • 厦门亚龙网站建设百度seo软件
  • 福州整站优化今日最新国际新闻头条
  • wordpress远程发布api网页优化怎么做
  • 可以制作网站的软件是什么百度图片识别在线识图
  • 网站设计 网络推广的服务内容珠海网站seo
  • 网站如何做实名认证今日新闻快讯
  • 掉关键词网站离我最近的电脑培训中心
  • php网站开发结构兰州网络推广优化怎样
  • 什么网站自己做名片好如何让百度搜索排名靠前
  • 怎么做相册网站长春网站建设公司
  • 大同哪有做网站的网络营销属于哪个专业
  • 广州有网站建设学校google搜索首页
  • 做家乡网站需要哪些内容百度网页版下载