栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

自动化测试模型

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自动化测试模型

1.        库 库是由代码集合的一个产品 可供程序员调用。

面向对象的代码组织形成的库叫类库 面向过程的代码组织形成的库叫函数库。

2.       框架 是为了解决一个或一类问题而开发的产品 用户一般只需要使用框架提供的类或函数 即可实现全部功能。

3.       工具  工具与框架类似 提供了更高层次的封装 屏蔽了底层代码 提供了单独的操作界面供用户使用。

二、自动化测试模型

1.        线性测试

        通过录制或编写对应用程序的操作步骤会产生相应的线性脚本 每个线性脚本想对独立 且不产生依赖与调用。

2.        模块化测试

        把重复的操作单独封装成公共模块。

3.        数据驱动测试

        数据的改变驱动自动化测试的执行 最终引起测试结果的改变。

4.        关键字驱动测试

        又称为表驱动测试或基于动作字测试。把自动化操作封装成关键字 避免测试人员直接接触代码 多以填表格的形式降低脚本的编写难度。

三、模块化与参数化
class Mail:
 def __init__(self, driver):
 self.driver driver
 login_frame self.driver.find_element_by_tag_name( iframe )
 self.driver.switch_to.frame(login_frame)
 def login(self, username, password):
 self.driver.find_element_by_name( email ).clear()
 self.driver.find_element_by_name( email ).send_keys(username)
 self.driver.find_element_by_name( password ).clear()
 self.driver.find_element_by_name( password ).send_keys(password)
 self.driver.find_element_by_id( dologin ).click()
 
from selenium import webdriver
from time import sleep
from module import Mail
driver webdriver.Chrome()
driver.get( https://www.126.com )
mail Mail(driver)
mail.login( , )
sleep(5)
driver.quit()
四、读取数据文件

1.        读取txt文件

from selenium import webdriver
from time import sleep
from module import Mail
driver webdriver.Chrome()
driver.get( https://www.126.com )
# 读取文件 以“r”的方式打开文件
with(open( ./data_file/user_info.txt , r )) as user_file:
 # 读取文件中的所有行 并按行返回到list
 data user_file.readlines()
# 格式化处理
users []
for line in data:
 # line[:-1]去除最后一个元素“n” split()通过冒号对每行数据进行拆分
 user line[:-1].split( : )
 users.append(user)
mail Mail(driver)
mail.login(users[0][0], users[0][1])
mail.login(users[1][0], users[1][1])
mail.login(users[2][0], users[2][1])
mail.login(users[3][0], users[3][1])
sleep(2)
driver.quit()

2.        读取CSV文件

import csv
# python标准的模块编码和解码器
import codecs
from itertools import islice
# 读取本地csv文件
data csv.reader(codecs.open( ./data_file/user_info.csv , r , GBK ))
# 存放用户数据
users []
# 循环输出每行信息 islice()返回一个迭代器 第一个参数表示迭代对象 第二个表示开始位置 第三个表示结束位置
for line in islice(data, 1, None):
 users.append(line)
print(users)

3.        读取XML文件

 ?xml version 1.0 encoding utf-8 ? 
 info 
 platforms 
 platform Windows /platform 
 platform Linux /platform 
 platform macOS /platform 
 /platforms 
 browsers 
 browser Firefox /browser 
 browser Chrome /browser 
 browser Edge /browser 
 /browsers 
 url http://www.xxxx.com /url 
 login username admin password 123456 / 
 login username guest password 654321 / 
 /info 
from xml.dom.minidom import parse
# 打开xml文件
dom parse( ./data_file/config.xml )
# 得到文档元素对象
root dom.documentElement
# 获取 一组 标签
tag_name root.getElementsByTagName( platform )
print(tag_name[0].firstChild.data)
print(tag_name[1].firstChild.data)
print(tag_name[2].firstChild.data)
login_info root.getElementsByTagName( login )
# 获得login标签的username属性值
username login_info[0].getAttribute( username )
print(username)
# 获得login标签的password属性值
password login_info[0].getAttribute( password )
print(password)
# 获得login标签的username属性值
username login_info[1].getAttribute( username )
print(username)
# 获得login标签的password属性值
password login_info[1].getAttribute( password )
print(password)

4.        读取JSON文件

[
 { username : , password : },
 { username : , password : 123 },
 { username : user , password : },
 { username : error , password : error },
 { username : admin , password : admin123 }
]
import json
with open( ./data_file/user_info.json , r ) as f:
 data f.read()
user_list json.loads(data)
print(user_list)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号