您现在的位置是:首页 >技术杂谈 >5.项目管理(测试)工具网站首页技术杂谈

5.项目管理(测试)工具

mmmenxj 2024-06-17 10:48:36
简介5.项目管理(测试)工具

目录

一、禅道

1.为什么需要禅道?(仅从测试角度看)

2.管理工具的对比

3.禅道的设计理念

4.软件开发的生命周期有哪些?(软件开发的流程)

二、selenium

1、什么是自动化测试?

2.UI自动化的好处

3.自动化框架

4.webdiver原理

5.selenium IDE

三、学习写一个自动化测试脚本

1.定位元素的方式

1.查看Id

2.查看xpath:

3.css_selector

 2.操作测试对象

3.等待

4.信息打印

5.对浏览器的操作

6.键盘事件


一、禅道

项目软件管理工具,可以管理整个软件开发的生命周期。

1.为什么需要禅道?(仅从测试角度看)

(1)管理测试用例

(2)管理Bug和Bug的各种状态

(3)管理测试的整个过程(状态)

(4)自动生成测试报告

2.管理工具的对比

QC/CQ  商业版本

jira   管理整个项目周期 商业版本

TsetLink   开源  只管理测试用例  比较局限

Bugzilla   只管理bug的生命周期

禅道   开源版   可以管理软件整个开发流程,即软件测试的流程

3.禅道的设计理念

敏捷开发模型

禅道的使用者:产品经理  项目经理    开发人员     测试人员    系统管理员

不同的角色拥有的权限不一样

4.软件开发的生命周期有哪些?(软件开发的流程)

需求阶段——计划阶段——设计阶段——编码——测试——发布阶段

二、selenium

1、什么是自动化测试?

自动化的价值:脚本的复用率。复用率越高,价值越大

在预设条件(自动化脚本)下运行系统,预设的条件包括正常的和异常的情况,不需要手工去干预,机器就可以去执行

越往下,测试效率越高,定位问题越容易。主要精力放在单元测试自动化。

(1)单元测试

Java Junit(白盒测试)   适用于项目比较庞大的系统,Spring +Structs +数据库hibernate。

如果用main方法进行测试,就需要把整个项目启动起来。

使用Junit就非常方便

(2)接口测试

测试时间:项目前期接口开发完成,就可以开始进行测试

用例维护量:比较少

适合的项目:接口变动较少的项目

(3)UI自动化

对系统的界面元素进行操作,用脚本模拟用户的使用,完成功能的正常和异常测试。

测试时间段:项目后期,前后端的开发和调联后

用例维护量:比较大

适合的项目:界面元素变动比较小的项目

2.UI自动化的好处

(1)可以进行回归测试

(2)节约了资源(人力资源)

(3)是一种可靠的测试方式,因为机器不会出错

(4)可以完成很多繁琐的测试(比如测试过程一直,每次输入的数据不同,ddt)

(5)能够完成手工测试无法完成的测试用例(精准计时)

(6)脚本的复用性(复用性越大,价值越高)

3.自动化框架

Robot Framework 关键字驱动,底层实现语言是Python

Django 接口  使用Python

selenimu  unittest框架  Python

为什么选择selenimu?  免费   小巧  易安装

支持多语言:Java、C#、Python、C、JavaScript

支持多平台:Windows、MAC、Linux

支持多浏览器:Chrome、Edge、Firefox、Safair

多浏览器、多平台的好处:进行兼容性测试

支持分布式测试:selenimu Grid

4.webdiver原理

(1)运行脚本,会把浏览器绑定到一个端口,这个端口就是浏览器端的remote server

(2)脚本通过commandexecutor向浏览器(server)发送HTTP请求,控制浏览器进行一系列的操作

(3)server接受到请求之后,把web service命令转化为浏览器的native指令,去操作浏览器

5.selenium IDE

一个录制自动化脚本的工具

 Firefox无需翻墙,在扩展和主题下载selenium IDE

三、学习写一个自动化测试脚本

1.定位元素的方式

不管用什么方式定位,这个方式(tag_name,name,id等)必须全局唯一

(1)id如果存在,可以全局唯一定位一个元素

(2)name存在并且全局唯一才可以定位

(3)class name存在并且全局唯一才可以定位

(4)link text必须是链接,并且链接内容全局唯一,才可以定位(a标签的全部文本内容)

(5)partical link text必须是链接,并且链接内容全局唯一,才可以定位(a标签的部分文本内容,可模糊匹配)

(6)tag name必须是全局唯一才可以定位

(7)xpath任何一个元素都可以定位到

(8)css selector

1.查看Id

 在搜索框右击,点击查看,定位id=kw

 编写自动化测试脚本:

import time
from selenium import webdriver

driver = webdriver.Chrome() # 启动浏览器
driver.get("https://www.baidu.com") # 打开某个网址
time.sleep(3)
#通过id来定位,id全局唯一,可以唯一定位一个元素
driver.find_element_by_id("kw").send_keys("西游记")
time.sleep(3)
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()   # 关闭浏览器

2.查看xpath:

 driver.find_element_by_xpath("//*[@id='kw']").send_keys("喜羊羊")

注意:复制过来xpath的"kw",需要将双引号,改为单引号

3.css_selector

 2.操作测试对象

(1)send_keys()向元素发送信息

(2)click()               点击元素

(3)submit   提交表单(html中必须写了submit才可以)

(4)clear      清除元素中的内容

(5)text       获取文本的内容

3.等待

如果不使用等待语句,直接进行跳转,会报错。推荐使用智能等待。

(1)固定等待 

time.sleep(5)    //真的需要等待5s,才能找到元素,跳转新页面

(2)智能(隐式)等待

driver.implicitly_wait(5)   //不需要真正等5s,只要找到页面上的元素就可以立即跳转页面

4.信息打印

(1)打印title

(2)打印URL

driver.maximize_window()  #窗口最大化
title = driver.title
print(title)

url = driver.current_url
print(url)

5.对浏览器的操作

(1)浏览器的最大化

driver.maximize_window()

(2)设置浏览器的宽和高

driver.set_window_size(400,1000)

(3)浏览器前进和后退

后退: driver.back()

前进: driver.forward()

(4)浏览器滚动条的控制

将滚动条拉倒最底端:

var q = document.documentElement.scrollTop=10000"  #(scrollTop距离最顶端有多远),

driver.execute_script(js0)

将滚动条拉倒最顶端:

js1 = "var q=document.documentElement.scrollTop=0"
driver.execute_script(js1)

6.键盘事件

所有的键盘操作,必须建立在定位到元素的基础上,因为我们是基于元素进行操作

导入工具包:from selenium.webdriver.common.keys import Keys

Keys.TAB    从本行换下一行

Keys.ENTER

组合键:

     导入工具包:from selenium.webdriver.common.action_chains import ActionChains

     send_keys(Keys.CONTROL, 'a')     # ctrl + a  全选

     send_keys(Keys.CONTROL, 'x')     # ctrl + x   删除

右击和双击的前提是先定位元素

b = driver.find_element_by_id("su")

    右击       ActionChains(driver).context_click(b).perform()

    双击       ActionChains(driver).double_click(b).perform()   #双击 和页面单击的效果相同

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。