如何用 Python实现自动化测试

合集下载

Python如何实现自动化测试

Python如何实现自动化测试

目录
CONTENTS
1
Python简述
2
Unittest / Pytest
3
Python + Requests
4
Python + Selenium
5
Python + Appium
6
辅助库简述
LOGO Python + Selenium
介绍
Selenium是用于Web应用程序测试的工具。Selenium测试直接运行在浏览 器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等
提供了SetUpClass()和TearDownClass()
C
setup_class/teardown_class只在类前后运行一次
用例运行前和结束后只运行一次

D
setup_method/teardown_method作用于方法始末
E
可以在函数前加@pytest.fixture()装饰器
LOGO Unittest / Pytest
68.111.97:90 14/api/safeR est/sysQrCod
post
json
"icon": "",
response.json()
"id": "",
["data"]["succe
"name": "public internet ssful"]==True
y
e/save

TestStand与Python集成实现更高级的自动化测试

TestStand与Python集成实现更高级的自动化测试

TestStand与Python集成实现更高级的自动化测试自动化测试在现代软件开发中扮演着重要的角色,它能够提高测试效率、减少人为错误,并且在持续集成以及持续交付的过程中发挥重要作用。

TestStand和Python是两个广泛应用于自动化测试的工具,在实现更高级的自动化测试方面,它们的整合是一个非常有前景的选择。

本文将介绍如何使用TestStand与Python进行集成,以实现更高级别的自动化测试。

I. TestStand简介TestStand是由NI(National Instruments)公司开发的一款通用的测试管理软件。

它提供了一个可视化的界面,允许用户创建测试序列、配置测试步骤、管理测试数据等。

TestStand广泛应用于各个领域的测试需求,并且具有良好的可扩展性和兼容性。

II. Python简介Python是一种高级的、通用的编程语言,具有简洁明了的语法和强大的生态系统。

Python在自动化测试领域中拥有广泛的应用,它提供了丰富的测试库和工具,使得编写和执行测试脚本变得更加简单和灵活。

III. TestStand与Python集成的优势1. 灵活性: 使用Python,我们可以编写灵活、可扩展的测试脚本,可以在脚本中调用各种Python库和模块,以满足不同测试需求。

2. 数据处理: Python在数据处理和分析方面具有强大的功能,我们可以利用Python的数据处理能力,对TestStand获得的测试数据进行分析和统计。

3. 第三方库支持: Python拥有丰富的第三方库和工具,可以与各种外部设备和传感器进行集成,可以轻松地实现各种复杂的测试场景。

4. 脚本共享: TestStand与Python的结合使得测试脚本更易于共享和维护,我们可以使用版本控制工具来管理测试脚本的变更和发布。

IV. TestStand与Python集成步骤1. 安装Python: 首先,我们需要在计算机上安装Python。

python自动化测试 pm用法

python自动化测试 pm用法

python自动化测试 pm用法Python 自动化测试 PM 用法在软件开发过程中,测试是一个至关重要的环节。

通过测试,可以确保软件在各种情况下都能正常运行,并且达到用户的需求和预期。

为了提高测试效率和准确性,许多开发团队开始使用自动化测试工具。

Python 是一门功能强大的编程语言,也被广泛应用于自动化测试。

在本文中,将介绍 Python 自动化测试中 PM(Page Object Model)的用法。

一、什么是 PM?PM(Page Object Model)是一种设计模式,用于将页面的逻辑与测试代码分离,提高测试代码的可读性和可维护性。

简单来说,PM 将页面看作对象,对象的属性和方法对应页面的元素和操作。

通过封装页面的元素和操作,测试代码只需调用 PM 中的方法,而无需关注页面的具体实现细节。

二、如何使用 PM?1. 导入所需的库和模块在使用 PM 进行自动化测试前,首先需要导入所需的库和模块。

Python 中有多个库可以用于自动化测试,例如 Selenium、PyTest 等。

以下是一个示例导入语句:```pythonfrom selenium import webdriverfrom mon.by import By```2. 创建 PM 类接下来,需要创建一个 PM 类来定义页面的元素和操作。

以一个登录页面为例:```pythonclass LoginPage:def __init__(self, driver):self.driver = driverername_input = (By.ID, 'username')self.password_input = (By.ID, 'password')self.login_button = (By.ID, 'login-btn')def enter_username(self, username):self.driver.find_element(*ername_input).send_keys(username) def enter_password(self, password):self.driver.find_element(*self.password_input).send_keys(password) def click_login_button(self):self.driver.find_element(*self.login_button).click()```在这个示例中,LoginPage 类包含了用户名输入框、密码输入框和登录按钮的定位信息,并定义了相应的操作方法。

写自动化用例测试代码

写自动化用例测试代码

写自动化用例测试代码自动化测试用例是软件开发过程中非常重要的一环,它可以帮助开发团队快速验证软件功能的正确性和稳定性。

在编写自动化测试用例的过程中,我们通常会使用测试框架和编程语言来实现。

下面我将以Python语言为例,简单介绍一下编写自动化测试用例的基本步骤。

首先,我们需要选择一个合适的测试框架,比较流行的有unittest、pytest、nose等。

这里以unittest为例进行介绍。

1. 首先,我们需要导入unittest模块:python.import unittest.2. 然后,我们创建一个测试类,继承unittest.TestCase类:python.class TestCalculator(unittest.TestCase):def test_addition(self):# 测试加法。

result = 2 + 3。

self.assertEqual(result, 5)。

def test_subtraction(self):# 测试减法。

result = 5 3。

self.assertEqual(result, 2)。

3. 接下来,我们可以使用unittest提供的assert断言方法来验证测试结果是否符合预期。

在上面的例子中,我们使用了self.assertEqual()方法来比较实际结果和预期结果是否相等。

4. 最后,我们可以使用unittest提供的main()函数来执行测试用例:python.if __name__ == '__main__':unittest.main()。

以上就是一个简单的自动化测试用例的编写过程。

当然,实际的测试用例可能会更加复杂,涉及到页面操作、接口调用等。

在实际编写测试用例时,我们需要根据具体的需求和场景来设计和实现测试用例,保证覆盖到软件的各个功能点和边界条件,从而保证软件质量和稳定性。

希望这个简单的例子可以帮助你理解自动化测试用例的编写过程。

Python与自动化测试使用Selenium和Appium

Python与自动化测试使用Selenium和Appium

Python与自动化测试使用Selenium和Appium自动化测试是现代软件开发领域中的一个重要环节,可帮助开发人员有效减少手动测试工作量并提高测试准确率。

Python是一种功能强大且易于学习的编程语言,Selenium和Appium则是两个常用的自动化测试工具。

本文将探讨如何使用Python编写自动化测试脚本,并介绍Selenium和Appium的使用方法。

一、Python与自动化测试Python是一种面向对象的编程语言,因其易于学习、灵活性高、拥有强大而广泛的库等特点而备受欢迎。

Python可以处理各种不同类型的数据和文件,包括文本、图像、视频和音频等。

在自动化测试领域,Python也有广泛应用。

Python可以与各种自动化测试工具集成,帮助开发人员快速创建测试脚本、运行测试并自动化生成测试报告。

此外,Python还支持自动化测试的并发执行,并可轻松处理测试结果和测试日志等信息。

二、SeleniumSelenium是一组用于自动化Web浏览器测试的工具。

它在各种不同的浏览器和平台上都可以运行,并支持多种编程语言。

Selenium使用起来非常方便,可帮助开发人员实现自动化测试的各种操作,如交互式测试、单元测试和端到端测试等。

Selenium最常见的应用场景是自动化Web应用程序界面的测试。

使用Selenium,可以很容易地编写Python脚本来测试Web应用程序的各种用户交互和界面功能。

Selenium还支持分布式测试、并发测试和测试结果分析等功能。

三、AppiumAppium是一个用于移动应用程序自动化测试的工具。

它支持iOS、Android和Windows等操作系统,并提供了多种语言的API,包括Python。

使用Appium,开发人员可以轻松创建具有交互性和丰富用户界面的移动应用程序的自动化测试。

相对于在真机上进行手动测试,使用Appium可以更快地确定问题并更准确地监测应用程序的性能和响应时间。

Linux系统自动化测试脚本使用Python编写的自动化测试工具适用于Linux环境

Linux系统自动化测试脚本使用Python编写的自动化测试工具适用于Linux环境

Linux系统自动化测试脚本使用Python编写的自动化测试工具适用于Linux环境在软件开发的过程中,为了确保软件系统的质量和稳定性,测试工作是必不可少的。

自动化测试是一种可以提高测试效率和准确性的方法。

而Linux系统自动化测试脚本使用Python编写的自动化测试工具,正是为了满足这一需求而设计的。

1. 概述Linux系统自动化测试脚本使用Python编写的自动化测试工具是一种用于自动化执行测试任务的工具。

它基于Python语言开发,并针对Linux环境进行了优化。

该工具可以通过编写Python脚本实现各种测试任务的自动化,例如功能测试、性能测试、兼容性测试等。

通过该工具,可以提高测试效率,减少人工测试的工作量,加快软件开发的速度。

2. 脚本编写使用Linux系统自动化测试脚本工具编写测试脚本非常简单。

首先,需要安装Python编程环境,并确保系统中已经安装了相关的Python库。

接下来,可以使用任何文本编辑器来编写Python脚本。

在脚本中,可以使用工具提供的各种功能和接口,如文件操作、网络通信、系统调用等。

编写完脚本后,可以通过命令行来执行。

脚本将按照预定的顺序依次执行其中的每个测试任务,并输出相应的测试结果。

3. 测试任务测试任务是脚本中的一个重要概念。

每个测试任务都代表着一个特定的测试场景或测试用例。

在编写测试脚本时,可以根据实际需求定义多个测试任务。

每个任务可以包含一系列的测试步骤,以及相应的预期结果。

通过执行这些测试任务,可以全面地检查被测试软件的各个方面,确保其符合预期的功能和性能要求。

4. 脚本调试在编写测试脚本时,可能会遇到一些问题,如语法错误、逻辑错误等。

为了排除这些问题,工具提供了调试功能。

可以在脚本中添加打印语句来输出中间结果,以便于定位问题。

同时,还可以使用断点功能,在特定位置暂停脚本的执行,以便于观察相关变量的值和程序的执行流程。

通过调试功能,可以快速定位和修复脚本中的错误,提高脚本开发的效率。

用python实现ui自动化测试(二)

用python实现ui自动化测试(二)

⽤python实现ui⾃动化测试(⼆)1.关于多元素定位元素定位从⼤的分类⽽⾔,分为两种:1、单个元素的定位2、多个元素的定位 当元素属性的ID,name等完全⼀致的时候,那么这个时候,你发现⽆法使⽤单个元素的⽅式来解决,那么久可以使⽤多个元素定位的⽅法来进⾏ 解决思路:获取元素的属性,其实是⼀个列表,看我们被定位的⽬标属性是在第⼏位,那么久使⽤索引想定位元素的前提from selenium import webdriver1.当我们想要运⽤tag_name的多元素定位:代码演⽰1 driver=webdriver.Chrome()2 driver.get('')3 lists=driver.find_elements_by_tag_name('input')4 t.sleep(5)5 lists[7].send_keys('美⼥')6 t.sleep(5)7 lists[8].click()8 t.sleep(5)9 driver.quit()View Code⾸先我们选⽤的百度的⽹站作为访问对象,我们第⼀步先需要将这个变量进⾏赋值lists=driver.find_elements_by_tag_name('input')这⼀⾏代码的意思就是我们将driver.find_elements_by_tag_name('input')赋值给lists根据我们要执⾏的那⼀条按照索引进⾏查找输⼊相关操作根据上图我们可以看到 tag_name=input我们按照标签input从⼀次查找捕捉到搜索栏input索引为7按照这个我们接着查找百度⼀下按钮索引为8所以我们综上述代码所展现的就是我们在输⼊框中输⼊关键字并且点击百度⼀下按钮2.进⼊框架关键字:switch_to.frame我们以QQ邮箱为例我们可以看到该⽹页其实是由多个框架组成的,如果我们按照以往的元素定位进⾏捕捉窗⼝是⽆法进⾏进⾏操作的,这时候我们就需要进⼊内部框架然后进⾏相关操作1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('https:///')6 t.sleep(10)7# iframe通过ID的⽅式进⼊login_frame8 driver.switch_to.frame('login_frame')9# name的⽅式10 driver.switch_to.frame('login_frame')11 t.sleep(10)12 driver.find_element_by_partial_link_text('注册').click()13 t.sleep(10)14 driver.close()View Code在上述代码中我们先是进⼊了QQ邮箱,紧接着在邮箱的⽹址中,我们进⼊了QQ登录的框架才能进⾏对⾥⾯的元素进⾏操作我们所对知识进⾏梳理,##逻辑⽅⾯先获取⽹址--进⼊⽹站所要操作的框架并且进⼊--⽤元素定位法定位框架内部的元素---执⾏相关操作3.关于selenium的代码3.1.获取元素属性的值:get_attribute()所有的input⾥⾯输⼊的值,都是value的属性我们⽤拉勾⽹进⾏操作1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('https:///')6 t.sleep(5)7#点击登录按钮8 driver.find_element_by_partial_link_text('登录').click()9 t.sleep(5)10 login=driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div/div[2]/div[3]/div[1]/div/div[2]/form/div[1]/div/input')11print(login.get_attribute('placeholder'))12 t.sleep(5)13 driver.quit()View Code通过上图我们可以我们的期望结果为:请输⼊常⽤⼿机号3.2.是否可见:is_displayed()我们⽤百度的页⾯作为案例1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('https:///')6 aboutBaidu=driver.find_element_by_partial_link_text('关于百度')7#is_displayed():是否可见8print(aboutBaidu.is_displayed())9 driver.quit()View Code我们可以先查看官⽹中拥有‘关于百度’相关链接如果存在则输出True 如果不存在则输出False1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('https:///')6 aboutBaidu=driver.find_element_by_partial_link_text('关于百度')7#is_displayed():是否可见8print(aboutBaidu.is_displayed())9 driver.quit()View Code输出结果3.3.查看是否可编辑:is_enabled()当我们想要查看这个元素是否可以编辑是就可以使⽤is_enablend()关键字进⾏查看可编辑为True 不可编辑为False1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('https:///')6 so=driver.find_element_by_id('kw')7print(so.is_enabled())8 driver.quit()View Code3.4.针对单按钮是否勾选:is_selected()当我们想要查看这个按钮是否进⾏勾选我们可以通过is_selected进⾏查找1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('https:///')6 autoLogin=driver.find_element_by_id('store1')7 t.sleep(5)8print('是否勾选:',autoLogin.is_selected())9 t.sleep(5)10 autoLogin.click()11print('是否勾选:',autoLogin.is_selected())12 driver.quit()View Code因为新浪的按钮默认为⾃动登录所以我们以⼀次获取的时候为True我们对该按钮执⾏了点击操作这时候我们在进⾏获取为False3.5.清空操作元素⾥⾯的关键字:clear当我们在进⾏⾃动化测试的时候需要重复的进⾏搜索,且想⼀遍进⾏操作的情况下我们会使⽤clear(清空)操作来进⾏1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.maximize_window()5 driver.get('/')6 so=driver.find_element_by_id('kw')7 so.send_keys('贾超太丑了')8 t.sleep(5)9 so.clear()10 t.sleep(5)11 driver.quit()View Code3.6获取测试地址:assert断⾔期望结果与实际结果进⾏⽐较获取的是地址⽤到的是current_url获取当前源代码⽤的是page_source获取页⾯的title:tltle当我们断⾔的时候如果为True的话才会运⾏接下来的动作1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.get('https:///')5print('获取测试地址:',driver.current_url)6print('获取当前源代码:',driver.page_source)7# 断⾔8assert driver.current_url.endswith('/')==True9# title10print(driver.title)11assert driver.title=='百度⼀下,你就知道'12 driver.close()View Code3.7关于页⾯的前进、后退、刷新前进:forward后退:back刷新:refresh1 driver=webdriver.Chrome()2 driver.get('https:///')3 t.sleep(3)4 driver.get('https:///')5 t.sleep(3)6 driver.back()7print('地址为:',driver.current_url)8 t.sleep(3)9 driver.forward()10print('地址为:',driver.current_url)11 t.sleep(3)12#刷新13 driver.find_element_by_id('input').send_keys('美⼥')14 t.sleep(3)15 driver.refresh()16 t.sleep(3)17 driver.close()View Code4.关于多窗⼝的实战需求:出现两个窗⼝,切换成新的窗⼝将旧窗⼝关闭1from selenium import webdriver2import time as t3 driver=webdriver.Chrome()4 driver.get('https:///')5#获取当前窗⼝6 nowWindow=driver.current_window_handle7 t.sleep(5)8 driver.find_element_by_partial_link_text('hao').click()9 t.sleep(5)10#获取所有的窗⼝11 allWindow=driver.window_handles12 t.sleep(5)13for item in allWindow:14#判断窗⼝不是当前窗⼝15if item!=nowWindow:16 driver.switch_to.window(item) #获取新创建窗⼝17 t.sleep(5)18 driver.find_element_by_xpath('//*[@id="search"]/form/div[2]/input').send_keys('美⼥') #获取新程序xpath19 t.sleep(5)20 driver.close()21#切换到当前窗⼝22 driver.switch_to.window(nowWindow)23 t.sleep(5)24 driver.find_element_by_id('kw').send_keys('美⼥')25 t.sleep(5)26 driver.quit()View Code5.关于下拉框处理⽅式因为下拉框不能使⽤常规的ID name等⽅式直接获取所以我们需要借助到Select的类来实现处理下拉框导⼊⽅法:form selenium.webdriver.support.select import Select因为我们在处理下拉框的时候需要导⼊Select⾥的类下拉框⾥⾯的选项本质就是类的⽅法,所以我们需要对下拉框进⾏实例化1from selenium import webdriver2from selenium.webdriver.support.select import Select3import time as t4 driver=webdriver.Chrome()5 driver.maximize_window()6 driver.get('file:///D:/jiachao/app/ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E7%BB%83%E4%B9%A0.html')7 t.sleep(5)8 nr=driver.find_element_by_id('nr')9#针对Select类的实例化10 select=Select(webelement=nr)11#索引⽅式12# select.select_by_index(3)13#value⽅式14# select.select_by_value('Java')15#⽂本的⽅式16 select.select_by_visible_text('Java语⾔')17 t.sleep(5)18 driver.quit()View Code利⽤索引的⽅式:select_by_index()利⽤value的⽅式:select_by_value利⽤⽂本的⽅式:select_by_visible_text。

python 自动化创建jira测试用例

python 自动化创建jira测试用例

python 自动化创建jira测试用例要使用Python自动化创建Jira测试用例,您可以使用Jira的REST API。

以下是一个简单的例子,演示如何使用Python中的`requests`库来创建Jira测试用例。

首先,确保您已安装`requests`库。

如果没有安装,可以使用以下命令进行安装:```bashpip install requests```接下来,您可以使用以下Python代码创建Jira测试用例:```pythonimport requestsfrom requests.auth import HTTPBasicAuth# Jira配置jira_url = ''username = 'your-username'password = 'your-password'project_key = 'your-project-key'issue_type = 'Test'# 创建Jira测试用例的函数def create_test_case(summary, description):# 构建Jira REST API的URLurl = f'{jira_url}/rest/api/2/issue/'# 构建Jira测试用例的数据data = {'fields': {'project': {'key': project_key},'summary': summary,'description': description,'issuetype': {'name': issue_type}}}# 发送POST请求创建测试用例response = requests.post(url,json=data,auth=HTTPBasicAuth(username, password),headers={'Content-Type': 'application/json'})# 检查响应状态码if response.status_code == 201:print('Jira测试用例创建成功!')issue_key = response.json()['key']print(f'Test Case Key: {issue_key}')else:print(f'Jira测试用例创建失败,错误代码: {response.status_code}')print(response.text)# 示例用法create_test_case('测试用例标题', '这是一个自动创建的Jira测试用例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何用 Python实现自动化测试近期一直在看王阳明的相关书籍,他的一个观点我非常赞同,不管要学习什么一定要立志,立志是非常非常重要的,但是立志前一定要有动机,或者说要有"打击",那种让你内心感到瓦凉瓦凉的打击!我在软件测试这个行业工作了12年之久,截至5年前,我一直很愉悦地,内心充盈地做着黑盒测试,曾几何时我也觉得最好离"开发"远远的,因为很多人都说:女孩子做测试挺好的~~ 但是,我遇到很一个非常现实而残忍的问题:"裁员",想想自己也挺奇葩的,在一个公司竟然待了12年之久,在这12年里,因为各种原因,我经历了大大小小的裁员有5次之多,一有裁员需求,老板第一个考虑的就是测试人员。

每一次裁员,都是自己团队里的兄弟姐妹,我要亲自告诉他或她,因为公司现在裁员,需要你离开公司,虽然你的工作是合格的,甚至是优秀的~~然后我要鼓起勇气陪着哭泣的他或她去立刻办理离职手续,一刻也不能停留~~你能想象我内心的崩溃吗?每一次我都会问为什么又是我们?每一次老板都会坦率地告诉我,为什么裁员考虑的是我们测试团队:就是因为可取代性太强了!!我真的实实在在意识到了黑盒测试的无力。

公司在寒冬时,需要"蓄积能量",也就是需要减少开支,老板就要开始衡量,哪类研发人员被裁,后续如果公司渡过难关后补起来比较容易,很不幸,每一次评估下来都是测试人员。

有个声音在我脑海里越来越清晰:不能这样,我们团队不能总是做可取代性强的工作!!所以测试的发展方向是什么?我要有什么样的技能才能改观老板对我们的认知??我开始在网上找,当然也在51testing这样专业的网站上找寻,我找寻的结果是:未来的测试应该是以自动化为主,手动测试为辅。

所以测试人员必须要学会编程,因为测试是一个无穷尽的工作,如何体现测试人员的价值,就是在单位时间内能有更多的产出,有让老板瞠目结舌的产出!!怎么学习Python在第二类问题中有详细说明,期间遇到的困难实在太多了,首要的问题就是团队的信心不足,我们离开coding实在太久了,这个困难,我只能说,受到的打击越大,越深,信心就会越足,容许我先哭一会~~ 除了这些形而上的困难,当然也有实实在在的困难,我举一个实际且非常具体的问题:电脑1开发的脚本,可以正常运行,移植到电脑2就无法运行?我们在开发时遇到上述问题,开发者开始一直纠结是电脑环境的问题,问题一直在发散,一直在发散,最后问题越来越复杂,搞到最后不可收拾......,最后他告诉我,这个开发任务无法进行@_@,这个小伙子成功在他的小主管的心里留下了:解决实际问题差的印象......他的问题在于没有回到问题的本质:Python的作用是定位,操作;就首先回到确认窗口是否定位的思路上(当时他竟然还质疑他的小主管:窗口肯定定位了,因为在他的开发电脑上都是定位的好好的*_*):真的发现窗口没有被成功定位。

开发者就很困惑,为什么在电脑1是好的,电脑2就不行。

他根本没想到是定位出的问题,所以连简单的确认动作也没做!然后再网上一通乱搜,真的越搜越晕,越搜问题越发散。

使用Spy++发现:窗口的Title在电脑1和电脑2确实发生了变化,所以才会出现这个问题,然后问题解决的就简单了,更改titles字串就可以了。

请不要问,为什么,我也不知道为什么,如果大家有时间,可以慢慢研究,对于外部门嗷嗷待哺的需求,实在没时间研究为什么,首要的问题是先解决问题,后续有时间再慢慢了解为什么。

未来的测试应该是以自动化为主,手动测试为辅,但现在还有一种说法,"在国外,资深的软件测试人员大多是手动测试,他们厉害之处在于测试用例的设计,但在国内,很多测试人员都把自动化测试当成很厉害的资本这个问题非常有意思,首先我不太认同这种简单粗暴的对比方式,不能只是"国外","国内"这样的一元的对比,我认为需要多角度考虑问题:例如不同类型的公司,不同规模的公司,不同的待测物,都会影响对比的结果。

还有最近听到一个非常有意思的说法:如果你手里只有一个锤子,那你的眼里只能看到钉子。

这句话是什么意思?就是说如果你手里的工具非常有限,你所看到的世界就是非常局限的。

所以我们要尽可能的多掌握一些工具,这样我们看到的世界才能使多维的世界,这个多维的世界,才是比较接近真实的世界。

所以,为什么纠结是手动测试比较厉害还是自动化测试比较厉害呢?对于资深的测试人员,难道这些不都应该被掌握吗?说到国外,我最近听一个在美国工作10多年的主管跟我讲他所见到的非常厉害的测试团队,他之前所负责的项目是由一个15个人左右的测试团队测试了2-3个月的全面测试当然期间也会与开发团队配合进行debug,而且期间经常加班,工作得非常辛苦,就这样辛苦了2-3个月最后剩下大概30多个已知bug,项目团队经过商议,这些bug隐藏较深,应该不影响认证。

然后他信心满满地拿着这个产品到这个国外的认证实验室进行测试,他发现这个实验室整整一栋楼只有4个测试工程师,这4个测试工程师都是工作很多年的资深人员。

一栋楼除了这4个测试工程师剩下的就是很多很多的仪器以及很多电脑搭起来的各种各样的测试环境,所有的测试工作,都是由这个4个测试工程师将测试环境搭建起来,自动化执行,测试结果也是自动化产生(也就是说测试环境搭建起来后,测试工程师就可以坐下来喝杯咖啡,聊会天了~)不到一个星期,结果出来了,发现了60多个bug!!然后,这位老板,长大了嘴巴,拿着测试报告,回公司,继续带领着团队努力奋战~~~~这个经历对他的震撼太大了,这就是差别!!15个人的测试团队对抗4个人的测试团队,而且是15个人*3个月的人力对抗4*1周的人力,结果是:完败!!我觉得不需要纠结手动测试厉害还是自动化测试厉害。

对于公司来说,性价比才是要考虑的问题!我们需要发展的方向就是我们要渐渐成为那4个测试工程师的一员,而不是15个测试工程的一员!首先明确Python是一个语言,一个脚本语言,所有的语言都是从Hello world开始,就是说首先都要学习它的基本语法,变量;它的数据结构;它的各种语句写法等等,然后对于这些基本语言,写各种对应的代码,目的是帮助我们更好理解这些基础的知识。

这部分就像盖房子时搭建房子的框架,无论是什么类型产品的自动化开发,这些框架都是需要的。

学习基本语法,真的与学习其它的语言相比并没有什么特殊之处。

但是我想强调的是:看一万遍都不如自己实际手动试一遍,实践非常重要(所以千万不要轻视Hello world,它就是开启你美妙人生的钥匙)。

网上有很多很多很好的课程,甚至是免费的课程,也有很多资料,免费的资料,这个只能靠自己耐着性子去读,去实践了……,这部分谁也帮不了你,只能靠你自己了。

如果一定要我推荐,我建议可以在网上找"超级无敌Python教程",当然还有很多优秀的python书籍和教程,可以根据自己的需要进行选择。

基础知识学完了,就可以问问自己学它是为了什么,目的性一定要强,我们总不会为了考试是吗,总归有相关的工作需求你才会想学python,根据你的工作需求确认一下你需要学习什么模块,python是有非常非常丰富的第三方模块,可以帮助你快速完成你所需要的自动化开发工作。

这部分就比较让人激情澎湃,这就是你需要偏重的学习的方向,首先要搞清楚你的需求是什么,然后再选择用什么模块,用什么模块学什么模块!接下来就会有实实在在的产出了,哈哈,可以说,接下来是见证奇迹的时刻!!Python有很多模块,这些模块可以帮你实现很多功能,所以千万不要尝试自己写测试库,请先尝试找相关的模块,这些模块可以让你事半功倍!例如手机测试可以用它的Monkeyrunner模块,路由器项目可以用它的selenium模块,需要调用运行在操作系统上的软件可以用pywinauto模块。

当然一个项目需要有自己的架构,连架构Python的模块也帮你解决了:unittest模块,所以Python是个多么贴心的人儿啊~~所以千万千万不要上来就想所有的功能都要靠自己写。

如果您再问,那如何具体用到这些工作中,那就请看我在博为峰上的"Python系列课程"吧,那里有详细的说明,更为重要的是:此课程一直给大家介绍在实践中总结的一套方法,这个方法可以适用于不同类型项目的自动化开发,这套方法可不是你能在网上可以搜到的哦~另外我还想多说两句:万事开头难,刚开始学习一定会很枯燥痛苦,但是一定要坚持,撑下去,学语言一定要实践,不能看死书,多做小例子,最好把自己看过的内容,用自己的语言写出文档,这样会加深你的认识,另外学语言不能就事论事,一定要扩展,例如你看到资料上有例子,也在编辑器上写了,也正常运行了,就结束了嘛,不,你还要想,这个例子我如果这样改,会怎样?通过不断改例子,会不断加深你的认识,学习起来也不会这样枯燥。

1)Python如何实现对系统的API接口功能实现自动化测试?2)如何对Python写的程序进行 GUI 自动化测试?3)Python用于工业控制自动化测试怎么样?4)移动APP的UI和接口自动化测试怎么进行?就像上面的4个问题,其实可以参考我在网校上的"Python系列课程",这个课程就是解答了不同类型的产品需要使用哪些第三方模块,课程是根据我在工作中的实际的项目进行讲解,并给大家总结了一套方法,供大家在自己的工作进行应用。

如果真的感兴趣的童鞋,可以去看一下这个课程。

这里我简单讲解一下常用的几个第三方模块:a. 基于网页的测试的项目,例如路由器测试的自动化,用到的模块Selenium(说人话:就是你在做黑盒测试的项目,需要打开浏览器,需要测试的功能都是在网页上。

)而我们这个Selenium这个模块提供了很多用于控制网页以及网页上各种控件的函数,所以在有了一定的Python的基础上再结合Selenium模块就可以达到我们的目的(说人话:对于Python的基本语法有了解,做过简单的Python的项目即可,不需要太深入的了解,要问为什么,因为你只有函数没有其它代码如何将这些函数组织起来,实现你想实现的功能呢?)b. 基于运行在Windows OS上的程序的自动化,例如硬件的测试需要控制,用到的模块Pywinauto(说人话:就是不管是我们软件测试还是硬件测试,只要用到运行在windows系统上应用软件,就可以通过控制这个软件进而实现自动化)我们这个Pywinauto这个模块提供了很多控制应用软件以及应用软件上各个控件的函数。

c. 补充模块:Pymouse和Pykeyboard,这两个模块就是控制鼠标和键盘的,一定要慎用这两个模块,它们只是上述两个模块的补充。

相关文档
最新文档