干货-卷起来,企业级web自动化测试实战落地(三)


前言

Selenium 自动化测试方案

基础方案:
使用unittest,主要是用 TestCase(测试用例);
使用模块化(基本的模块化,抽取公共模块);
使用数据驱动的方式(主要包括 数据库的形式 和文件读取 );

定制执行需要测试的用例,使用unittest,主要用的是TestSuite(测试套件)、和 TextTestRunner(文本测试运行器)[或者HTMLTestRunner]

生成测试报告(发送报告到指定邮箱)

方案实现的具体

使用PyCharm创建新的PurePython项目
在项目中创建如下的文件夹(python package)

TestCase
Data
Common
TestRunner
Report

分别实现上述模块
在Data中存放数据,CSV文件,或者也可以放到数据中,使用数据驱动

## 使用csv文件
csv.reader()

## 使用数据库(MySQL),可以参考www.imooc.com的python操作MySQL的视频
cur.fetchall()

在Common中,创建测试公共模块,实现模块化的操作

## __init__(self, driver: webdriver.Firefox, base_url)
self.common = RanzhiCommon(self.driver, self.base_url)

在TestCase创建自动化测试用例,注意使用unittest.TestCase

扫描二维码关注公众号,回复: 15629002 查看本文章
def setUp()
def tearDown()
det test_xxx()

在TestRunner创建测试执行器和测试套件,使用unittest.TestSuite和HTMLTestRunner(第三方)

test_suite = unittest.TestSuite()
test_suite.addTest(RanzhiLogonTc01("test_xxx"))
html_test_runner = HTMLTestRunner(stream=report_file, title="xxx", description="dddd)
html_test_runner.run(test_suite)

在项目根目录创建main.py,作为测试项目的主入口,运行测试。
检查测试报告

Selenium 可能遇到的问题

<iframe>框架

f1 = find_element_by_css_selector(frame)
switch_to.frame(f1)

<select>下拉框

s1 = find_element_by_css_selector(select)
ss1 = Select(s1)
ss1.select_by_index(0)
ss1.select_by_value("人事部")

编码问题 utf-8
时间等待问题 sleep(5)

单元测试框架

unittest

unittest.TestCase
前置条件
清理
测试过程步骤
断言 assertEqual(期望值, 实际结果, 错误提示)

运行测试 test_开头的方法

unittest.TestSuite
addTest(xxx("test_batch_login"))

自定义的添加测试用例,并执行

unittest.TextTestRunner
run(suite)

执行创建并维护好的测试套件

test_runner test_suite test_case

测试运行器 测试套件 测试用例

模块化操作:
面向对象的实践:
编写一个类,类里面描述公共的方法;
实例化这个类,调用这个类的方法;

类的构造方法,需要传递 webdriver.Firefox()

self.common = RanzhiCommon(self.browser, self.base_url)

数据驱动测试:
读取csv,循环每一行数据进行操作
读取MySQL,用例存到MySQL中

中文编码的问题

# coding="utf-8"

读csv的时候,添加 encoding=‘utf-8’

csv.reader(open("xxx.csv", "r",1, encoding="utf-8")

循环放到最外层

文件路径在控制台读取不到的问题,需要用绝对路径来指向文件
封装WebDriver

避免第三方代码的威胁,防止大批量修改测试用例
节约人力的成本(如果封装以后,不需要每个自动化测试工程师都会WebDriver)
标准化自动化用例的操作,只需要调用公共的标准模块就好。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

要想登上人生巅峰,就别让懒惰和畏惧成为阻碍!抛开疑虑,放下束缚,迈出勇往直前的步伐。只有敢于冒险、坚持奋斗,才能创造属于自己的辉煌!

只要心中燃起坚定的火焰,任何挑战都能被征服;不停耕耘,终将收获丰盛的果实;在追求梦想的路上,坚持不懈才是通向成功的唯一途径。

只有拼尽全力,才能超越极限;只有坚持奋斗,才能创造辉煌;只有永不放弃,才能追寻梦想;勇往直前,努力奋斗,让未来的自己感动自己!

猜你喜欢

转载自blog.csdn.net/csdnchengxi/article/details/131641221