Web自动化实战(3)-- litemail电商项目

2022/6/27 6:21:02

本文主要是介绍Web自动化实战(3)-- litemail电商项目,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

这一篇主要讲怎么优化现有代码。

本篇将会由几个方面进行优化:

1.通过将定位信息转换成变量来进一步封装

2.配置log,在必要的地方打log,方便后续调试和排查问题

3.使用allure生成测试报告

4.数据清理

5.参数化

 

通过将定位信息转换成变量来进一步封装:

举一个例子,其他的类也差不多改造下。

HomeScreenPage

class HomeScreenPage(BasePage):

    __MALL_MANAGE_SELECT_BUTTON = (By.CSS_SELECTOR, ".el-submenu__title")    #封装成参数变量,后面如果有变动,直接修改这些参数即可。
    __ITEM_CATEGORY_BUTTON = (By.XPATH, "//*[text()='商品类目']")

    def enter_category_page(self):
        #点击商场管理
        self.do_find(self.__MALL_MANAGE_SELECT_BUTTON).click()
        #点击商品类目
        self.do_find(self.__ITEM_CATEGORY_BUTTON).click()
        # sleep(2)
        #-->进入商品类目界面

        from page.item_category_page import CategoryPage
        return CategoryPage(self.driver)

配置log:

创建pytest.ini

log_cli_level = info

addopts = --capture=no

log_cli_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)

log_cli_date_format = %Y-%m-%d %H:%M:%S



log_file_level = info

log_file_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)

log_file_date_format = %Y-%m-%d %H:%M:%S

conftest.py里面修改log文件名称

*此部分参考https://www.csdn.net/tags/NtjaMgysMDcxNTgtYmxvZwO0O0OO0O0O.html 

import os
import time

now=time.strftime('%Y%m%d_%H%M%S') #以日期时间做报告文件名,'%Y%m%d_%H%M%S'
project_name = "WebTest"
logfile_name=f'{now}_{project_name}.log' #日志文件名


def pytest_configure(config):
    # 如果只需要输出log日志只要设置此行就可下方的都删掉就行,意思设置log输出文件目录
    config.option.log_file = os.path.join(config.rootdir, 'log', logfile_name)

创建log_utils.py

import logging

logger = logging.getLogger(__name__)

使用:

from utils.log_utils import logger
logger.info("从首页跳转到商品类目页面")

 使用allure生成测试报告:

加入allure feature story等

@allure.feature("商城测试")
class TestLitemall:
    def setup_class(self):
        self.home = LoginPage().login()
    def teardown_class(self):
        self.home.quit()


#     测试步骤:
#     打开网站
#     登录
#     点击商场管理,点击商品类目
#     点击添加
#     填写类目名称
#     点击确认
#     预期结果:
#     存在刚刚创建的类目

    @allure.story("添加商品类目成功")
    @allure.title("添加用例")
    def test_add_item(self):
        res = self.home.\
             enter_category_page().\
            enter_add_category().\
            add_category().\
            get_result()
        allure.attach("/screenshot/sucess_create.png","截图",attachment_type=allure.attachment_type.PNG,extension='.png')
        assert res == "创建成功"

 

数据清理

 

参数化



这篇关于Web自动化实战(3)-- litemail电商项目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程