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

手机营销型网站制作淘宝指数查询入口

手机营销型网站制作,淘宝指数查询入口,做设计做网站,开发者选项在哪小米增加了多进程的方式执行测试代码,对代码改动比较大 1、case case目录依然是自动生成 2、config dir_collection.py新增了配置 mkdir_collections [case,log,img, ] del_collections [results,report ] del_regex temp3、data/img/log/resource/video data/im…

增加了多进程的方式执行测试代码,对代码改动比较大

1、case

case目录依然是自动生成

 2、config

dir_collection.py新增了配置

mkdir_collections = ['case','log','img',
]
del_collections = ['results','report'
]
del_regex = 'temp'

3、data/img/log/resource/video

data/img/log/resource目录没做修改,删除了video目录

4、results/report及以temp开头的目录是自动生成,且会每次运行前都会自动删除

5、utils目录

删除了delete.py

修改了dir_check.py

import os
from config.dir_collection import mkdir_collections, del_collections, del_regex
import shutildef check_dir():mk_dir()del_files()def mk_dir():li = os.listdir()for i in mkdir_collections:if i not in li:os.mkdir(i)def del_files():li = os.listdir()for i in li:if i.startswith('temp'):shutil.rmtree(i)elif i in del_collections:shutil.rmtree(i)

 修改了video.py

import os
import timedef generate_video(source_path: str):p = f"{source_path}/{int(time.time())}.webm"while True:if os.listdir(source_path):for i in os.listdir(source_path):os.renames(f'{source_path}/{i}', p)breakreturn p

 新增了process.py

import os
import timeimport pytest
import multiprocessingdef pytest_run(a):f = ['-s', '--alluredir=results']for i in a:f.append(i)print(f)pytest.main(f)def split_list(lst, n):"""将列表 lst 按 n 等份分割"""if n > len(lst):raise Exception('The number of processes cannot be greater than the number of test files')k, m = divmod(len(lst), n)return [lst[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in range(n)]def process(size: int, d: str):file_list = os.listdir(d)temp = []for i in file_list:file_path = d + '/' + iif os.path.isfile(file_path) and i.startswith('test'):temp.append(file_path)li = split_list(temp, size)pro = [multiprocessing.Process(target=pytest_run, args=(li[i],)) for i in range(size)]for p in pro:p.start()for p in pro:p.join()

6、conftest.py

修改了conftest.py

import timeimport pytest
from playwright.sync_api import sync_playwright
from config.setting import config
from playwright.sync_api import Page
from utils.operate import operate
from utils.baseurl import get_baseUrl
import os
import allure
from utils.video import generate_videodef getName():pid = os.getpid()temp_file_name = f'temp{pid}'return temp_file_name@pytest.fixture(scope='session')
def browser():browser = sync_playwright().start().chromium.launch(headless=False, slow_mo=500)return browser@pytest.fixture(scope='session')
def page(browser):page = browser.new_page(ignore_https_errors=True, record_video_dir=getName())page.goto(get_baseUrl(config))operate(config['username'], page)operate(config['password'], page)operate(config['submit'], page)return pagedef log(request):with open('log/http.txt', 'a', encoding='utf-8') as w:w.write(f'{request}.url' + '\n')@pytest.fixture(scope='function', autouse=True)
def after(page: Page):yieldpage.on("request", lambda request: log(request))@pytest.fixture(scope='session', autouse=True)
def clear(page: Page, browser):yieldpage.close()browser.close()p = generate_video(getName())allure.attach.file(p, f'{os.path.basename(p)}', attachment_type=allure.attachment_type.WEBM, extension='WEBM')

7、修改了main.py 

import os
import shutil
import timefrom playwright.sync_api import sync_playwright
from config.setting import config
from utils.template import Template
from utils.md5 import Md5
import pytest
from utils.dir_check import check_dir
from utils.baseurl import get_baseUrl
from utils.process import processdef run():data = os.listdir('data')m = Md5('case', 'log', 'case_md5.json')n = Md5('utils', 'log', 'template_md5.json')filter_list = m.filter()utils_list = n.filter()if 'template.py' not in utils_list:filter_list = []n.write_md5()for i in data:file_path = 'data' + '/' + iif os.path.isfile(file_path):temp = 'test_' + iif temp not in filter_list:Template.create_test_file(file_path, 'case')m.write_md5()if __name__ == "__main__":check_dir()get_baseUrl(config)run()process(2, 'case')os.system('allure generate  results -o ./report')for file_name in os.listdir('resource'):src_file = os.path.join('resource', file_name)dst_file = os.path.join('report', file_name)if os.path.exists(dst_file):os.remove(dst_file)shutil.copy(src_file, 'report')os.system('allure open report')

8、总结

最终修改后的效果,可以使用多进程的方式,开启多个浏览器实例,去对case目录下的测试文件分片执行,在测试文件特别多的情况下,是可以提高执行效率的。

其次,每个进程都有自己的视频及截图,进程之间互不干扰 

http://www.hkea.cn/news/12466/

相关文章:

  • 西安企业网站建设价格小说推广平台有哪些
  • 网站空间pdf下载不了青岛谷歌优化
  • wordpress mac建站seo优化培训多少钱
  • 做海外网站推广刺激广告
  • 2015年做哪个网站能致富用asp做的网站
  • 长沙培训网站制作seo高级优化技巧
  • 公司商标图案大全北京seo收费
  • 请检查网络青岛seo网站推广
  • 网站制作论坛最近的头条新闻
  • 国内阿里巴巴网站怎么做百度提交入口网址截图
  • 怎样免费做彩票网站如何免费推广一个网站
  • 网站建设改版网站seo收录工具
  • 武汉做营销型网站建设淘宝店铺推广
  • 深圳做企业网站多少钱seo排名优化
  • 江宁区建设工程局网站进不去广告的六种广告形式
  • 莆田高端模板建站如何开发一个软件平台
  • 北京网站制作网站优化国外网站怎么推广
  • 宁波网站建设排名seo研究学院
  • 网站制作的流程有哪些windows优化大师怎么彻底删除
  • 网站开发论文内容营销网络推广
  • 建站主机微营销官网
  • 小型网站设计google海外推广
  • 没有照片怎么做网站网络营销十大成功案例
  • 网站维护费一般多少钱长沙百度快速排名优化
  • 如何制作微信公众号里的小程序搜索引擎简称seo
  • 通州网站建设是什么推广什么app佣金高
  • 做网站的前景网络项目平台
  • 揭阳企业网站建设开发制作链接的app的软件
  • 俄文网站设计方象科技专注于什么领域
  • windows和linux 做网站企业类网站有哪些例子