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

电子商务平台网站模板百度广告上的商家可靠吗

电子商务平台网站模板,百度广告上的商家可靠吗,做海岛旅游类网站的背景及意义,网络商城营业执照经营范围实现需求2:有两种运行测试的方式:通过config配置文件运行,测试只需要修改config配置文件cmdline 运行这里是新建一个config类来存储所有的测试配置,以后配置有修改的话也只需要修改这个类。根据目前的测试需求,config中…

实现需求2:

有两种运行测试的方式:

  1. 通过config配置文件运行,测试只需要修改config配置文件
  2. cmdline 运行

这里是新建一个config类来存储所有的测试配置,以后配置有修改的话也只需要修改这个类。

根据目前的测试需求,config中有以下几个属性:

属性作用备注
list_test        按case list的flag,为True时生效
single_test单条运行case的flag,为True时生效
repeat      

case重复运行的次数

risk_analysis高风险case分析功能暂未实现
tester              测试者的用户名,作为测试者发送邮件的收件人
case_list存储测试case集,从这里取出需要运行的测试

具体类代码为:

class TestConfig:"""测试配置管理"""_results_file = "test_results.json"_test_history = {}def __init__(self,list_test=False, single_test=False, repeat=1, case_list=None, risk_analysis=False,tester = None):self.list_test = list_testself.single_test = single_testself.repeat = repeatself.case_list = case_listself.risk_analysis = risk_analysisself.tester = tester

虽然有两种运行脚本的方式,但是通过这两种方式获取的信息都会填充到config这个类中,然后从这个类中读取当前需要运行的配置信息。 默认从配置文件中读取测试信息,当配置文件不存在时,从cmdline中读取测试信息。

图一 配置信息读取流程

最上层代码实现:

    def get_test_config(self, config):"""1. read config from config file2. check flag of test config . if true , read test config from config fileif false , read test config from cmdline:param config: Object of Class TestConfig"""split_str = "="config_list = self.read_config_from_file(CONFIG_FILE)run_from_cfg_file = ast.literal_eval(config_list[0].split(split_str)[1].strip())if run_from_cfg_file:logger.info("reading test config from config file ......")self.parse_settings_to_config(config_list, config)else:self.read_config_from_cmdline(config)logger.info("getting test config from cmdline ......")

读取配置文件

配置文件中包含两类信息:

  1. 当前配置文件是否有效的flag(True or False),后面会根据这个flag来决定读取config file还是cmdline
  2. 测试的具体信息,用于填充TestConfig对象的

代码实现:返回一个包含配置信息的list

    def read_config_from_file(self, file_path):# config_file = "config_file.txt"# # get path of config_file.txt# file_path = os.path.join(os.getcwd(), config_file)config_list = []# check if config file is exist# if self.__file_exist_check(file_path):if self.config_file_status(file_path):try:with open(file_path) as file_handle:lines = file_handle.readlines()for line in lines:config_list.append(line.strip())except FileNotFoundError as e:logger.exception(f"file not found:{e}")except PermissionError as e:logger.exception(f"No permission to read the file:{e}")except Exception as e:logger.exception(f"file not found: {e}")return config_list   # config_list 正确else:logger.error("Config file is not exist....Please check again,Test Stop......")exit()

配置文件config_file.txt的内容为:

 --use_config=False
--list_test=True
--single_test=False
--case_list =test_list.txt
--repeat=15
--risk_analysis=False
--tester=TestUser

判断是否使用配置文件

通过run_from_cfg_file 这个flag来判断是读取配置文件还是读取cmdline

"""flag of run method ,from config file , or from cmdline
"""
run_from_cfg_file = False# config_list 为read_config_from_file()返回的config list
run_from_cfg_file = ast.literal_eval(config_list[0].split(split_str)[1].strip())if run_from_cfg_file:logger.info("reading test config from config file ......")self.parse_settings_to_config(config_list, config)else:self.read_config_from_cmdline(config)logger.info("getting test config from cmdline ......")

若run_from_cfg_file 为True,则从配置文件中读取测试配置并调用方法parse_settings_to_config()填充到TestConfig对象中

# fill test settings to TestConfig objectdef parse_settings_to_config(self, arg_list, config):split_str = "="for item in arg_list:if "--list_test" in item:config.list_test = ast.literal_eval(item.split(split_str)[1].strip())  # transfer from string to bool typeelif "--single_test" in item:config.single_test = ast.literal_eval(item.split(split_str)[1].strip())  # transfer from string to bool typeelif "--case_list" in item:config.case_list = item.split(split_str)[1].strip()elif "--repeat" in item:config.repeat = item.split(split_str)[1].strip()elif "--risk_analysis" in item:config.risk_analysis = ast.literal_eval(item.split(split_str)[1].strip())  # transfer from string to bool typeelif "--tester=TestUser" in item:config.tester = item.split(split_str)[1].strip()

若run_from_cfg_file 为False,则调用方法read_config_from_cmdline()将cmdline中的配置填充到TestConfig配置中去。

 def get_cmdline_args(self):list = sys.argvreturn listdef read_config_from_cmdline(self,config):self.parse_settings_to_config(self.get_cmdline_args(),config)

至此通过配置文件和cmdline分别获取测试配置信息的task就已经完成了。读取配置信息的工作都是在tef_funtcion.py中的class FunctionApi中来完成的。完整代码为:

"""
this file is api preset for test, all test function tool that needed is included in this python file
"""
import ast
import os.path
import sysfrom utils.TestLogger import TestLogger as TestLoggerconfig_file = "config_file.txt"
# get path of config_file.txt
CONFIG_FILE = os.path.join(os.getcwd(), config_file)"""flag of run method ,from config file , or from cmdline
"""run_from_cfg_file = False
logger = TestLogger().get_logger()class FunctionApi:# fill test settings to TestConfig objectdef parse_settings_to_config(self, arg_list, config):split_str = "="for item in arg_list:if "--list_test" in item:config.list_test = ast.literal_eval(item.split(split_str)[1].strip())  # transfer from string to bool typeelif "--single_test" in item:config.single_test = ast.literal_eval(item.split(split_str)[1].strip())  # transfer from string to bool typeelif "--case_list" in item:config.case_list = item.split(split_str)[1].strip()elif "--repeat" in item:config.repeat = item.split(split_str)[1].strip()elif "--risk_analysis" in item:config.risk_analysis = ast.literal_eval(item.split(split_str)[1].strip())  # transfer from string to bool typeelif "--tester=TestUser" in item:config.tester = item.split(split_str)[1].strip()def get_cmdline_args(self):list = sys.argvreturn listdef read_config_from_cmdline(self,config):self.parse_settings_to_config(self.get_cmdline_args(),config)def __file_exist_check(self, file_path):if os.path.exists(file_path):return Trueelse:logger.error(f"File {file_path} does not exist.")return Falsedef read_case_from_list_file(self):test_list = "test_list.txt"# get path of test_list.txtfile_path = os.path.join(os.getcwd(), test_list)# print("os.path.abspath:", os.path.abspath(__file__))  #获取当前文件的绝对路径C:\code\USBTestAndroid\utils\api.py# print("os.getcwd()", os.getcwd())                     #获取调用该函数的项目路径C:\code\USBTestAndroid# print("file path :", file_path)case_list = []try:with open(file_path) as file_handle:lines = file_handle.readlines()for line in lines:case_list.append(line.strip())except FileNotFoundError as e:logger.error(f"file not found:{e}")except PermissionError as e:logger.error(f"No permission to read the file:{e}")except Exception as e:logger.error(f"file not found: {e}")return case_listdef config_file_status(self, file_path):"""check if config file is exist:return: True ,exist;False not exist"""return self.__file_exist_check(file_path)def read_config_from_file(self, file_path):config_list = []if self.config_file_status(file_path):try:with open(file_path) as file_handle:lines = file_handle.readlines()for line in lines:config_list.append(line.strip())except FileNotFoundError as e:logger.exception(f"file not found:{e}")except PermissionError as e:logger.exception(f"No permission to read the file:{e}")except Exception as e:logger.exception(f"file not found: {e}")return config_list   # config_list 正确else:logger.error("Config file is not exist....Please check again,Test Stop......")exit()def get_test_config(self, config):"""1. read config from config file2. check flag of test config . if true , read test config from config fileif false , read test config from cmdline:param config: Object of Class TestConfig"""split_str = "="config_list = self.read_config_from_file(CONFIG_FILE)run_from_cfg_file = ast.literal_eval(config_list[0].split(split_str)[1].strip())if run_from_cfg_file:logger.info("reading test config from config file ......")self.parse_settings_to_config(config_list, config)else:self.read_config_from_cmdline(config)logger.info("getting test config from cmdline ......")

下面的工作就是利用读取到的配置信息开始测试。

run_test.py:

    logger.info("Starting test execution...")config = TestConfig()functionApi.get_test_config(config)run_pytest(config)

http://www.dtcms.com/wzjs/191184.html

相关文章:

  • 有那些专门做财务分析的网站下载百度软件
  • 网站建设会使用的技术公众号推广方法
  • 科技公司网站源码如何做一个网站的seo
  • 成都网站制作工作室百度网讯科技客服人工电话
  • 网站开发商城app东莞seo外包公司
  • 网站搜索排名优化怎么做seo在线培训机构
  • 电商网站建设需要多少钱seo流量排名软件
  • 山东日照今天的疫情是啥情况无锡百度快照优化排名
  • 个性网站制作网店培训骗局
  • 网站开发的软件环境有哪些西安百度推广竞价托管
  • 网站设计服务流程论坛企业推广
  • php做网站用框架免费顶级域名注册网站
  • 疫情排行榜最新消息关键词优化排名软件哪家好
  • 常德网站建营销推广方案包括哪些内容
  • 做的网站如何放在电脑上百度公司名称
  • 网站的静态页面谁做百度合伙人答题兼职赚钱
  • 星辰wordpress太原seo全网营销
  • 网贷审核网站怎么做营销方式和渠道
  • 杰奇小说网站建设西安seo推广
  • 新余网站建设找谁做集合竞价口诀背熟6句
  • 怎样更换网站模板互联网广告管理暂行办法
  • 几台服务器做集群网站查询seo
  • 做网站筹钱需要多少钱360信息流广告平台
  • 龙岗做棋牌网站建设手机网站关键词快速排名
  • 孙俪做的网站广告东莞关键词排名快速优化
  • 苏州网站优化国内永久免费云服务器
  • 网站开发五人分工整站多关键词优化
  • 做纺织外贸网站百度竞价推广账户
  • 造一个官方网站如何提交百度收录
  • 南宁网站推广方案如何做营销活动策划