python自动化测试(一)
1、软件测试
根据项目流程阶段划分软件测试:
上图是一个典型“V”模型软件开发流程:
单元测试:单元测试是对程序中的单个子程序或具有独立功能的代码段进行测试的过程;
集成测试:集成测试是单元测试的基础上,将通过单元模块组装成系统或子系统,再进行测试,重点是检查模块之间的接口是否正确;
系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足了需求规格的定义,以及软件系统的正确性和性能等是否满足其规约所指定的要求;
验收测试:验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,向软件购买都展示该软件系统满足其用户的需求;
当然,从对软件测试工作的自动化程度可以划分为手工测试与自动化测试。
手工测试:
手工测试就是由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。
自动化测试:
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率。
2、自动化测试常用工具
自动化测试的概念有广义与狭义之分;广义上来讲所有借助工具来进行软件测试都可以称为自动化测试;狭义上来讲,主要指基于 UI 层的自动化测试;除此之外还有基代码编写阶段的单元自动化测试,基本集成测试阶段的接口自动化测试。
目前市面上的自动化测试工具非常多,下面几款是比较常见的自动化测试工具。
QTP
QTP 是 HP Quick Test Professional software 的简称,
是一种企业级的自动测试工具。
提供了强大易用的录制回放功能。
支持 B/S 与 C/S 两种架构的软件测试。
是目前主流的自动化测试工具。
Robot Framework
Robot Framework 是一款 Python 编写的功能自动化测试框架。
具备良好的可扩展性,支持关键字驱动,
可以同时测试多种类型的客户端或者接口,
可以进行分布式测试执行。
Selenium
Selenium 是一个用于 Web 应用程序测试的工具,
支持多平台、多浏览、多语言去实现自动化测试。
目前在 web 自动化领域应用越来越广泛
3、python编写第一个自动化脚本
第一个自动化测试Hello World
#coding=utf-8
from selenium import webdriver
# 导入 Selenium 的 webdriver 包,
# 只有导入 webdriver 包我们才能使用 webdriver API 进行自动化脚本的开发
driver = webdriver.Firefox()
# 将控制的 webdriver 的 Firefox 赋值给 browser;
# 获得了浏览器对象才可以启动浏览器,打开网址等操作
# 当然也可以调用 Ie 或 Chrome ,不过要先安装相关的浏览器驱动才行
driver.get("http://www.baidu.com")
# 打开百度页面
driver.find_element_by_id("kw").send_keys("python自动化测试")
# 通过键盘输入方法send_keys()向百度输入框里输入python自动化测试
driver.find_element_by_id("su").click()
# 百度搜索按钮点击
driver.quit()
# 退出并关闭窗口的每一个相关的驱动程序。
浏览器驱动:
WebDriver 支持 Firefox (FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver) 和 Chrome(ChromeDriver)等浏览器,使用具体的浏览器需要使用对应的浏览器驱动。下载对应的驱动,放入python安装目录即可,注意版本问题。
# 火狐浏览器
driver = webdriver.Firefox()
# IE浏览器
driver = webdriver.Ie()
# 谷歌浏览器
driver = webdriver.Chrome()
4、java编写第一个自动化脚本
import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.WebElement;
import org.openqa.Selenium.firefox.*;
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.baidu.com/");
WebElement txtbox = driver.findElement(By.name("kw"));
txtbox.sendKeys("java自动化测试");
WebElement btn = driver.findElement(By.id("su"));
btn.click();
driver.close();
}
4、C#编写第一个自动化脚本
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
class Baidu
{
static void Main(string[] args)
{
driver = new FirefoxDriver();
url = "http://www.baidu.com/";
driver.Navigate().GoToUrl(url)
var searchBox = driver.FindElementById("kw");
searchBox.SendKeys("C#自动化");
ar btnClick = driver.FindElementById("su");
btnClick.Click();
driver.Quit();
}
}