python自动化测试技术-Allure
文末有源码
1、环境配置
3、start_script.py启动脚本文件代码
import os
# file_path 是自动化脚本文件
file_path = "20.py"
# xmlpth是生成的xml数据文件,用来生成最终报告
xmlpath = "./xml"
xmlStr = "pytest -s -q {file_path} --alluredir {xmlpath}".format(file_path=file_path, xmlpath=xmlpath)
print("xmlStr",xmlStr)
# 执行命令,生成xml文件
a = os.system(xmlStr)
# 生成报告,--clean会清除旧文件
htmlStr = "allure generate {0} -o ./report/ --clean".format(xmlpath)
os.system(htmlStr)
4、20.py自动化测试脚本文件
所有的方法均调用的methods.py里面
5、methods.py文件
举例说明
send_key方法:
1、loc :需要传入的元素位置,定义规则是xpath=>"*****",id=>"*****",这样我用split切分=>符号后,就可以获取元素选取方式和具体xpath路径或者id名字,例如 xpath=>//*[@id='loginname'] 切分后,可以得到["xpath","//*[@id='loginname'] "],供我定位选取元素使用
2、key:需要传入的值
3、desc:用例步骤描述
4、with allure.step用来记录步骤生成allure报告
def send_key(loc,key,desc=None):
with allure.step(desc):
try:
getElement(loc).send_keys(Keys.CONTROL,'a')
getElement(loc).send_keys(key)
except Exception as e:
raise e
# 获取单个页面元素
def getElement(loc):
try:
by = loc.split("=>")[0]
value = loc.split("=>")[1]
element = WebDriverWait(driver, 10).until(lambda x: x.find_element(by=byTypeDict[by], value=value))
# print(element)
return element
except Exception as e:
raise e
def click(loc,desc=None):
with allure.step(desc):
try:
print("这里是点击方法")
getElement(loc).click()
except Exception as e:
raise e
import os
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
import allure
byTypeDict = {
"xpath": By.XPATH,
"id": By.ID,
"name": By.NAME,
"class_name": By.CLASS_NAME,
"tag_name": By.TAG_NAME,
"link_text": By.LINK_TEXT,
"partial_link_text": By.PARTIAL_LINK_TEXT,
"css selector" : By.CSS_SELECTOR
}
driver = webdriver.Chrome(executable_path='C:\chrome\chromedriver246.exe')
# 获取单个页面元素
def getElement(loc):
try:
by = loc.split("=>")[0]
value = loc.split("=>")[1]
element = WebDriverWait(driver, 10).until(lambda x: x.find_element(by=byTypeDict[by], value=value))
# print(element)
return element
except Exception as e:
raise e
# 获取一组相同的元素,以列表形式返回
def getElements(loc):
try:
by = loc.split("=>")[0]
value = loc.split("=>")[1]
elements = WebDriverWait(driver, 5).until(lambda x: x.find_elements(by=byTypeDict[by], value=value))
return elements
except Exception as e:
raise e
def get_url(*args, desc=None):
with allure.step(desc):
try:
driver.get(args[0])
except Exception as e:
raise e
def wait(*args, desc=None):
with allure.step(desc):
try:
time.sleep(args[0])
except Exception as e:
raise e
def max_window(*args, **kwargs):
try:
driver.maximize_window()
except Exception as e:
raise e
def close(desc=None):
with allure.step(desc):
try:
driver.quit()
except Exception as e:
raise e
def click(loc,desc=None):
with allure.step(desc):
try:
print("这里是点击方法")
getElement(loc).click()
except Exception as e:
raise e
def send_key(loc,key,desc=None):
with allure.step(desc):
try:
getElement(loc).send_keys(Keys.CONTROL,'a')
getElement(loc).send_keys(key)
except Exception as e:
raise e
7、启动脚本python3 start_script.py
源码:
公众号回复:测试报告,获取源码
python自动化测试技术-Allure的更多相关文章
- python自动化测试(4)-使用第三方python库技术实现
python自动化测试(4)-使用第三方python库技术实现 1 概述 关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 ...
- python自动化测试(2)-自动化基本技术原理
python自动化测试(2) 自动化基本技术原理 1 概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...
- python自动化测试(3)- 自动化框架及工具
python自动化测试(3) 自动化框架及工具 1 概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...
- Python开发技术详解PDF
Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...
- 【转】推荐4个不错的Python自动化测试框架
之前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架.一个测试框架应该具有最佳的测试用例.假设(assumptions).脚本和技术来运行每一 ...
- 《Python自动化测试修炼宝典》线上课程已经成功入驻网易云课堂......
<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课堂...... IT测试老兵利用工作之余,亲自录制的<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课 ...
- 历时一年《Python自动化测试实战》终于出版!!!
一.为什么会写这本书 1.系统梳理.可以加深自己对测试知识体系的系统梳理 2.名气.增加个人的名气,比如:面试时,可以很自豪的说,我是xxxx书的作者 3.利他.帮助有需要的学习者更系统.完备的学习和 ...
- 《自拍教程5》Python自动化测试学习思路
前提:熟悉测试业务及流程 任何Python自动化测试的前提,都是必须先熟悉实际测试业务. 任何脱离实际测试业务的自动化都是噱头且无实际意义! 测试的基本流程基本是: 测试需求分析,测试用例设计与评审, ...
- 关于《Python自动化测试实战》
作者有话说 笔者写这本书的初心是想通过自身经验分享一些在自动化测试领域中的实用技术,能够帮助那些正在从事自动化测试相关工作或者准备转型自动化测试的测试人员.任何一门技术涵盖的知识点都是非常广泛的,可能 ...
随机推荐
- python-day4爬虫基础之正则表达式
正则表达式:(字符串匹配) 使用单个字符串来描述匹配一系列符合某个句法规则的字符串 是对字符串操作的一种逻辑公式 应用场景:处理文本和数据 正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个 ...
- [USACO09MAR]向右看齐Look Up(单调栈、在线处理)
https://www.luogu.org/problem/P2947 题目描述 Farmer John's N (1 <= N <= 100,000) cows, convenientl ...
- LCA 最近公共祖先 Tarjan(离线)算法的基本思路及其算法实现
首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点. 换句话说,就是两个点在这棵 ...
- a标签的一些特殊使用
<a href="tel:10086">10086</a> //点击后直接拨打10086 <a href="mailto:c1586@qq ...
- node 配置文件
# cat ~/.npmrc prefix=E:/Private/nodejs #registry=http://r.cnpmjs.org/ registry=http://registry.npm. ...
- 基础篇九:模块介绍(--with-http_stub_status_module)
下面--with 即为编译安装的模块 下面我们来介绍--with-http_stub_status_module此模块 vim /etc/nginx/conf.d/default.conf 然后检查 ...
- AdminSwagger2Configuration
package org.linlinjava.litemall.admin.config; import org.springframework.context.annotation.Bean; im ...
- 浅谈PHP小马免杀
在渗透测试过程初期,上传小马,拿到 webshell 再进行下一步的操作,现如今的网站安全更多是 一些云防护.CDN防护.服务器安全软件等等,给渗透测试.提权等带来了一定难度的提升, 今天探讨一下如何 ...
- 正则表达式sed学习(二)
sedsed是一个流编辑器,非交互式的编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space)接着用 sed 命令处理缓冲区的内容,处理完成 ...
- SMTP错误码/建议解决方法
SMTP错误码/建议解决方法 错误总表 420 1. Timeout Communication Problem Encountered During Transmission. Thie Is a ...