软件测试(六)自动化测试
自动化测试:
自动化元素定位-》管理页面元素-》选择套用设计模式来进行管理
(1)基于关键字形态。所有元素信息全部保存在文件中
关键字驱动+数据驱动的实现模式 (面向对象)
数据驱动(代码与数据分离,确保代码稳定性)
(2)基于POM形态。所有元素信息与页面对象关联
pom设计模式:基于页面对象实现自动化测试
pom结构:基类:关键字驱动封装的底层类
页面对象类:提供不同页面的对象。在实际测试中通过调用页面对象实现自动化测试流程
测试用例类:unitest、pytest
测试数据类:yaml,excel
单接口多条件覆盖
链路测试
———————————————————————————————————————————
基于selenium对网页接口进行自动化测试
执行环境:python3.6脚本
单个测试百度搜索框
from selenium import webdriver
import timedriver=webdriver.Chrome()
driver.get("https://www.baidu.com/")#driver.find_element_by_css_selector(".s_ipt").send_keys("西安工业大学")
#driver.find_element_by_css_selector("#su").click()driver.find_element_by_id("kw").send_keys("西安工业大学")
driver.find_element_by_id("su").click()
#设置长宽
driver.set_window_size(400,400)#智能等待
driver.implicitly_wait(10)
driver.find_element_by_partial_link_text("百度百科").click()driver.maximize_window()print("title:"+driver.title)
print("url:"+driver.current_url)
time.sleep(8)
driver.quit()
指定html页面测试
from selenium import webdriver
import time
import osdriver=webdriver.Chrome()
#指定文件路径下的html
file='file:///'+os.path.abspath("C:/Users/Administrator/Desktop/admin.html")
driver.get(file)driver.find_element_by_id("su").click()
#设置长宽
driver.set_window_size(400,400)#智能等待
driver.implicitly_wait(10)driver.maximize_window()print("title:"+driver.title)
print("url:"+driver.current_url)
time.sleep(8)
driver.quit()
多个测试点,采用类封装,逐个运行测试
from selenium import webdriver
import unittest
import timeclass Baidu22(unittest.TestCase):def setUp(self):self.driver=webdriver.Chrome()self.driver.maximize_window()self.base_url="https://www.baidu.com/"def test_CN(self):driver=self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("西安工业大学")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def test_EN(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("NASA")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def test_DG(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("911")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def tearDown(self):self.driver.quit()if __name__=="__main__":unittest.main(verbosity=0)
from selenium import webdriver
import unittest
import timeclass Baidu11(unittest.TestCase):def setUp(self):self.driver=webdriver.Chrome()self.driver.maximize_window()self.base_url="https://www.baidu.com/"def test_CN(self):driver=self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("西安")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def test_EN(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("china")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def test_DG(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("119")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def tearDown(self):self.driver.quit()if __name__=="__main__":unittest.main(verbosity=0)
from selenium import webdriver
import unittest
import timeclass Baidu22(unittest.TestCase):def setUp(self):self.driver=webdriver.Chrome()self.driver.maximize_window()self.base_url="https://www.baidu.com/"def test_CN(self):driver=self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("b站")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def test_EN(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("NBA")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def test_DG(self):driver = self.driverdriver.get(self.base_url)driver.find_element_by_id("kw").send_keys("918")driver.find_element_by_id("su").click()time.sleep(3)driver.find_element_by_partial_link_text("百度百科").click()time.sleep(4)def tearDown(self):self.driver.quit()if __name__=="__main__":unittest.main(verbosity=0)
多个测试用例,封装为套件,整体测试
work为工程 baidu1 baidu2为封装的测试用例
import unittest
from work import baidu
from work import baidu1
from work import baidu2def createsuite():suite=unittest.TestSuite()suite.addTest(baidu.baidu("test_CN"))suite.addTest(baidu.baidu("test_EN"))suite.addTest(baidu1.baidu11("test_CN"))suite.addTest(baidu1.baidu11("test_EN"))suite.addTest(baidu2.baidu22("test_CN"))suite.addTest(baidu2.baidu22("test_EN"))return suiteif __name__=="__main__":suite=createsuite()runner=unittest.TextTestRunner(verbosity=1)runner.run(suite)
makesuit解决测试用例逐个添加,适用于大量测试用例
import unittest
from work import baidu
from work import baidu1
from work import baidu2def createsuite():suite=unittest.TestSuite()suite.addTest(unittest.makeSuite(baidu1.baidu11))suite.addTest(unittest.makeSuite(baidu2.baidu22))return suiteif __name__=="__main__":suite=createsuite()runner=unittest.TextTestRunner(verbosity=1)runner.run(suite)
discovers解决多个测试脚本,把文件夹下所有脚本中的test方法添加在测试套件中
import unittestdef createsuite():discovers=unittest.defaultTestLoader.discover("../work",pattern="baidu*.py",top_level_dir=None)print(discovers)return discoversif __name__=="__main__":suite=createsuite()runner=unittest.TextTestRunner(verbosity=1)runner.run(suite)
软件测试(六)自动化测试相关推荐
- 我做软件测试六年的一些感悟
今天给大家分享一篇文章,文章内容讲的很真实,不管是刚入行还是在这个行业做了两三年的同志们,都可以看一下,可能很多人觉得讲的都是大道理,但是这些点都是我们今后要面对的.接下来来看看文章吧. 不知不觉已经 ...
- 开发转测试没人要_我做软件测试六年的一些感悟
不知不觉已经从事软件测试六年了,从毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企.六年的时间过得真快.长期的测试工作也让我对软件测试有了比较深入的认识.我就跟大家分享一下我做测试的心得 ...
- python和软件自动化_软件测试和自动化测试
## 软件测试和自动化测试 ### 软件测试概述 软件测试是一种用来促进鉴定软件的正确性.完整性.安全性和品质的过程,也就是在规定的条件下对程序进行操作以发现程序中的错误,衡量软件的品质并对其是否能满 ...
- 深圳软件测试培训:自动化测试
深圳软件测试培训:自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或系统,预设条件包括正常和异常,最后评估运行结果.将人为驱动的测试行为转化为机器执行的过程. 自动化测试框架一般可以 ...
- 软件测试教程 自动化测试appium篇
软件测试教程 自动化测试appium篇 本课程主要讲解自动化测试工具appium. 下面以android app测试为例,讲解appium的基本使用方法 appium概念 appium安装配置 一个测 ...
- 软件测试框架——自动化测试框架(专题)
软件测试框架 --自动化测试框架 专题关键字: 框架( formwork ).自动化.自动化测试框架.专题 内容简介 本专题讲解什么是测试框架,以及什么是自动化测试框架?在了解框架技术的前提下具体介绍 ...
- 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(六)
整理不易,希望对各位学习软件测试能带来帮助 软件测试知识持续更新 第五章 自动化测试用例设计 第一节.手工测试用例与自动化测试用例 手工测试用例与自动化测试用例对比: 用例选型注意事项: 第二节.测试 ...
- 十年经验的软件测试P7总监 给转行自动化软件测试六条学习建议
建议一:一定要学习一门编程语言,然后再开始使用自动化测试相关的工具 >> 下载300G软测学习资料包[视频教程+PPT+课件+项目源码] 关于编程语言的选择,是很多想转行软件测试的新人们都 ...
- 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(一)
第一章:自动化测试基础 第一节 软件测试分类 关于软件测试领域名词颇多,发现有许多测试新手混淆概念,从不同的角度可以将软件测试有不同的分类的方法:所以,这里汇总常见软件测试的相关名词,对软件测试领域有 ...
- 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(五)
整理不易,希望对各位学习软件测试能带来帮助 第四章 自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框 ...
最新文章
- 面试官,别再问高并发了!
- mysql 复制诊断_诊断Mysql复制问题
- java hanlp分词_Hanlp分词实例:Java实现TFIDF算法
- WinPcap笔记(5):不用回调方法捕获数据包
- uos20专业版是linux哪个版本,WPS Office 2019 for Linux 专业版已与统一操作系统 UOS 完成适配...
- linux-实时查看mysql中的日志文件
- 4000元性价比主机
- 2008 SCI 影响因子(Impact Factor)
- Java项目:博客系统西瓜社区(springboot+mybatis-plus+thymeleaf)
- sqlserver 2000 sp3补丁
- 用户标签体系的搭建方法
- 一篇“从入门到上手”的PCB设计教程
- 扑克牌中的顺子。从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。
- SDUT 2021 Spring Individual Contest(for 20) - 9(2)(部分)补题
- python处理PPOCRLabel标注的数据用于LPRNet与Yolo的训练
- 镜头畸变矫正、鱼眼镜头(算法)
- whatsapp协议接口 云控成品
- es6转es5的转码器babel的安装与使用
- TFN DP16A 对数周期天线 100MHz~6GHz
- 智慧城市在七个方面的应用