自动化测试:

自动化元素定位-》管理页面元素-》选择套用设计模式来进行管理

(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)

软件测试(六)自动化测试相关推荐

  1. 我做软件测试六年的一些感悟

    今天给大家分享一篇文章,文章内容讲的很真实,不管是刚入行还是在这个行业做了两三年的同志们,都可以看一下,可能很多人觉得讲的都是大道理,但是这些点都是我们今后要面对的.接下来来看看文章吧. 不知不觉已经 ...

  2. 开发转测试没人要_我做软件测试六年的一些感悟

    不知不觉已经从事软件测试六年了,从毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企.六年的时间过得真快.长期的测试工作也让我对软件测试有了比较深入的认识.我就跟大家分享一下我做测试的心得 ...

  3. python和软件自动化_软件测试和自动化测试

    ## 软件测试和自动化测试 ### 软件测试概述 软件测试是一种用来促进鉴定软件的正确性.完整性.安全性和品质的过程,也就是在规定的条件下对程序进行操作以发现程序中的错误,衡量软件的品质并对其是否能满 ...

  4. 深圳软件测试培训:自动化测试

    深圳软件测试培训:自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或系统,预设条件包括正常和异常,最后评估运行结果.将人为驱动的测试行为转化为机器执行的过程. 自动化测试框架一般可以 ...

  5. 软件测试教程 自动化测试appium篇

    软件测试教程 自动化测试appium篇 本课程主要讲解自动化测试工具appium. 下面以android app测试为例,讲解appium的基本使用方法 appium概念 appium安装配置 一个测 ...

  6. 软件测试框架——自动化测试框架(专题)

    软件测试框架 --自动化测试框架 专题关键字: 框架( formwork ).自动化.自动化测试框架.专题 内容简介 本专题讲解什么是测试框架,以及什么是自动化测试框架?在了解框架技术的前提下具体介绍 ...

  7. 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(六)

    整理不易,希望对各位学习软件测试能带来帮助 软件测试知识持续更新 第五章 自动化测试用例设计 第一节.手工测试用例与自动化测试用例 手工测试用例与自动化测试用例对比: 用例选型注意事项: 第二节.测试 ...

  8. 十年经验的软件测试P7总监 给转行自动化软件测试六条学习建议

    建议一:一定要学习一门编程语言,然后再开始使用自动化测试相关的工具 >> 下载300G软测学习资料包[视频教程+PPT+课件+项目源码] 关于编程语言的选择,是很多想转行软件测试的新人们都 ...

  9. 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(一)

    第一章:自动化测试基础 第一节 软件测试分类 关于软件测试领域名词颇多,发现有许多测试新手混淆概念,从不同的角度可以将软件测试有不同的分类的方法:所以,这里汇总常见软件测试的相关名词,对软件测试领域有 ...

  10. 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(五)

    整理不易,希望对各位学习软件测试能带来帮助 第四章 自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框 ...

最新文章

  1. 面试官,别再问高并发了!
  2. mysql 复制诊断_诊断Mysql复制问题
  3. java hanlp分词_Hanlp分词实例:Java实现TFIDF算法
  4. WinPcap笔记(5):不用回调方法捕获数据包
  5. uos20专业版是linux哪个版本,WPS Office 2019 for Linux 专业版已与统一操作系统 UOS 完成适配...
  6. linux-实时查看mysql中的日志文件
  7. 4000元性价比主机
  8. 2008 SCI 影响因子(Impact Factor)
  9. Java项目:博客系统西瓜社区(springboot+mybatis-plus+thymeleaf)
  10. sqlserver 2000 sp3补丁
  11. 用户标签体系的搭建方法
  12. 一篇“从入门到上手”的PCB设计教程
  13. 扑克牌中的顺子。从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。
  14. SDUT 2021 Spring Individual Contest(for 20) - 9(2)(部分)补题
  15. python处理PPOCRLabel标注的数据用于LPRNet与Yolo的训练
  16. 镜头畸变矫正、鱼眼镜头(算法)
  17. whatsapp协议接口 云控成品
  18. es6转es5的转码器babel的安装与使用
  19. TFN DP16A 对数周期天线 100MHz~6GHz
  20. 智慧城市在七个方面的应用

热门文章

  1. 【SQLite数据库学习】 连表查询
  2. 初中初二的计算机课本,人教版初中信息技术电子课本
  3. 2022年西北工业大学计组试点班龙芯杯个人赛参赛作品
  4. 页面质量优化提升关键词排名
  5. 公司题库-运维方向-2018-04-26-待续
  6. 《Linux/UNIX OpenLDAP实战指南》——第2章 OpenLDAP服务器安装与配置 2.1OpenLDAP平台支持...
  7. 深入理解RHEL6开机启动原理
  8. 将tomcat注册为Windows服务
  9. 《Linux 工作站安全检查清单》——来自 Linux 基金会内部
  10. 高通平台耳机知识记录(转载)