一、Unittest用例组织

在test_case目录下创建test*.py,组织测试用例

├── test_case
│   ├── __init__.py
│   └── test_login.py

test_login.py

import unittest

from pages.login_page import LoginPageAction
from utils.constants import LOGIN_URL class TestLoginCase(unittest.TestCase): def test_login_success(self):
username = 'XXXXX'
password = 'XXXXX'
login_page = LoginPageAction(path=LOGIN_URL)
home_page = login_page.login(username=username, password=password)
user_title = home_page.get_user_title
expect_ret = 'XXXXXX'
self.assertEqual(expect_ret, user_title) def test_login_success_(self):
username = 'XXXXX'
password = 'XXXXX'
login_page = LoginPageAction(path=LOGIN_URL)
home_page = login_page.login(username=username, password=password)
user_title = home_page.get_user_title
expect_ret = 'XXXXXX'
self.assertEqual(expect_ret, user_title) if __name__ == '__main__':
unittest.main()

二、组织测试用例

戳我获取 —> 组织用例的姿势

在run_case目录下创建run_login_case.py,用于运行登陆用例集

├── run_case
│   ├── __init__.py
│   └── run_login_case.py

run_login_case.py

import unittest
from test_case.test_login import TestLoginCase
from utils.se_utils import Driver if __name__ == '__main__':
cases = unittest.TestLoader().loadTestsFromTestCase(TestLoginCase)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(cases) # 所有用例运行完后关闭浏览器
Driver.quit_driver()

三、添加Python引包路径

创建module_path.py,存放所有引包的绝对路径 放在run_case下,

所有的执行策略均先调用module_path.py,防止找到模块的异常: ModuleNotFoundError: No module named 'XXXXXX'

├── run_case
│   ├── __init__.py
│   └── run_login_case.py
│   └── moudle_path.py

module_path.py

# 添加Python存放模块的路径
import os
import sys web_auto_test_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
pages_dir_path = web_auto_test_path + '/pages'
config_dir_path = web_auto_test_path + '/config'
run_case_dir_path = web_auto_test_path + '/run_case'
test_case_dir_path = web_auto_test_path + '/test_case'
utils_dir_path = web_auto_test_path + '/utils' sys.path.extend([
web_auto_test_path,
pages_dir_path,
config_dir_path,
run_case_dir_path,
test_case_dir_path,
utils_dir_path,
]) from pprint import pprint print('python引包路径:')
pprint(sys.path)

run_login_case.py

# 在执行入口添加引包路径
from module_path import *
·
·
·

Web自动化测试项目(三)用例的组织与运行的更多相关文章

  1. Web自动化测试项目搭建目录

    Web自动化测试项目搭建(一) 需求与设计 Web自动化测试项目(二)BasePage实现 Web自动化测试项目(三)用例的组织与运行 Web自动化测试项目(四)测试报告 Web自动化测试项目(五)测 ...

  2. Web自动化测试项目(四)测试报告

    测试报告生成 使用HTMLTestRunner 生成测试报告 本文使用的 HTMLTestRunner 来源于github: https://github.com/githublitao/HTMLTe ...

  3. selenium3 web自动化测试框架 三:项目实战中PO模型的设计与封装

    po模型设计思想 Page Object 模式主要是将每个页面设计为一个class,其中包含页面中的需要测试的元素(按钮,输入框,标题等),这样在Selenium测试页面中可以通过调取页面类来获取页面 ...

  4. Web自动化测试项目(二)BasePage实现

    一.BasePage介绍 创建一个BasePage类,对Selenium Api进行二次封装 为了快速创建项目并投产,用到的Selenium Api才进行封装,没用到的则不封装 优先封装最重要的几个方 ...

  5. Web自动化测试项目(五)测试结果通知

    一.邮件通知 使用第三方邮件发送库yagmail github地址:https://github.com/kootenpv/yagmail 安装 pip3 install yagmail demo.p ...

  6. Web自动化测试项目(七)日志

    一.日志作用 调试程序 了解系统程序运行的情况,是否正常 系统程序运行故障分析与问题定位 用来做用户行为分析和数据统计 二.为项目添加日志 └── utils ├── log_utils.py └── ...

  7. Web自动化测试项目(六)多环境执行

    需求 使用命令行运行脚本,可以指定测试/预发布/生产环境的url,如果找不到该环境变量则默认为测试环境 python3 xxxxxx.py test 修改constants.py # DOMAIN = ...

  8. Web自动化测试项目搭建(一) 需求与设计

    一.项目需求 测试/生产环境更新后,自动化回归测试 项目易于维护和运行 支持多种测试策略 支持可视化测试报告 运行结果,支持多种方式通知相关人员 可定时/触发的方式运行自动化测试用例 二.设计 2.1 ...

  9. python web自动化测试中失败截图方法汇总

    在使用web自动化测试中,用例失败则自动截图的网上也有,但实际能落地的却没看到,现总结在在实际应用中失败截图的几种方法: 一.使用unittest框架截图方法:   1.在tearDown中写入截图的 ...

随机推荐

  1. CSS3(3)---2D变形(transform)

    CSS3(3)---2D变形(transform) 2D变形是CSS3中具有颠覆性的特征之一,它常用的属性有:移动(translate).缩放(scale).旋转(rotate).倾斜 (skew). ...

  2. mongodb安装及安装MongoDB报错Verify that you have sufficient privileges to start system services解决方法

    1.点击安装包mongodb-win32-x86_64-2012plus-4.2.2-signed进行安装 2.点击next 3.接受协议,点击next 4.点击自定义安装 选择安装路径,建议默认C盘 ...

  3. CAP理论的理解

    CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中: 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance ...

  4. 「CF242E」XOR on Segment 解题报告

    题面 长度为\(n\)的数列,现有两种操作: 1.区间异或操作 2.区间求和操作 对于每个查询,输出答案 思路: 线段树+二进制拆位 线段树区间修改一般使用的都是懒标记的方法,但是对于异或,懒标记的方 ...

  5. java数据结构之常用排序算法

    冒泡排序 private void maopao(int arr[]) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j &l ...

  6. Win10系统下应用窗口任务栏居中效果

    实现步骤: 在资源管理器中新建文件夹,一定要保证文件夹内无任何文件 任务栏上鼠标右键,移动到工具栏上,选择新建工具栏 选择新建的空文件夹 空文件夹出现在任务栏后,鼠标可以拖动工具栏前的两条竖线(图片上 ...

  7. web前端常用知识点

    1.常见的块级元素  内联元素   div -最常用的块级元素      dl - 和dt-dd 搭配使用的块级元素      form - 交互表单      h1 -h6- 大标题      hr ...

  8. linux下卸载旧版本cmake安装新版本cmake

    1.看当前cmake版本 cmake --version 2.卸载旧版本下的cmake apt-get autoremove cmake 3.安装新版面cmake http://www.cnblogs ...

  9. 《C++Primer》第五版习题详细答案--目录

    作者:cosefy ps: 答案是个人学习过程的记录,仅作参考. <C++Primer>第五版习题答案目录 第一章:引用 第二章:变量和基本类型 第三章:字符串,向量和数组 第四章:表达式

  10. 解决httpclient设置代理ip之后请求无响应的问题

    httpclient这个工具类对于大家来说应该都不陌生吧,最近在使用过程中出现了碰到一个棘手的问题,当请求的接口地址由http变成https之后,程序执行到 httpClient.execute(ht ...