当前位置: 首页 > news >正文

中山网站建设哪家好百度搜索引擎广告投放

中山网站建设哪家好,百度搜索引擎广告投放,wordpress评论者名字,济南公司文章目录 一、参数化测试1.pytest命令2.实现参数化测试3.填写地址测试4.生成Allure测试报告5.关键字驱动 二、案例1.实现后台登录1.1登录1.2.处理验证码1.3.封装识别验证码函数 2.通过cookie保持登录2.1给页面添加cookie2.2获取页面的cookie2.3自动化获取cookie 三、excel进行数…

文章目录

  • 一、参数化测试
      • 1.pytest命令
      • 2.实现参数化测试
      • 3.填写地址测试
      • 4.生成Allure测试报告
      • 5.关键字驱动
  • 二、案例
    • 1.实现后台登录
      • 1.1登录
      • 1.2.处理验证码
      • 1.3.封装识别验证码函数
    • 2.通过cookie保持登录
      • 2.1给页面添加cookie
      • 2.2获取页面的cookie
      • 2.3自动化获取cookie
  • 三、excel进行数据加载
      • 1.安装第三方工具
      • 2.封装函数
      • 3.使用数据

一、参数化测试

对于相似的测试用例,实现代码重用,减少代码量,提高维护性。
让一份代码,执行多个用例,每组参数都独立执行一次。

1.pytest命令

#查看版本
pytest --version 
#运行特定的测试函数
(1)显式指定函数名,通过::标记,比如命令pytest test_a.py::test_b,则只会运行test_a.py中的test_b函数
(2)使用模糊匹配,使用 -k 选项标识,比如命令pytest -k sqrt test_a.py
(3)使用pytest.mark在函数上进行标记。
#使用装饰器跳过指定的测试函数
@pytest.mark.skip()
#使用装饰器实现预见错误功能
@pytest.mark.xfail()
#参数
-v   #输出详细信息
-m   #选择标记的测试函数 

2.实现参数化测试

import pytest
def test_a():print("这是一个测试用例")@pytest.mark.parametrize("i",   #参数名range(5),   #参数值
)
def test_b(i):print(f"这是{i}个测试用例")

3.填写地址测试

import pytest
from webdriver_helper import get_webdriverfrom pages import *
from test_a import driver#整个测试会话只执行一次
@pytest.fixture(scope='session')
def user_driver():#完成登录操作driver=get_webdriver()driver.maximize_window()driver.get('登录页面网址(自己填)')#login_page函数在上次已完成,在这里直接使用login_page=LoginPage(driver)login_page.login("账号","密码")assert login_page.msg.text =='登录成功'yield driverdriver.quit()@pytest.mark.parametrize("name,tel,sheng,shi,qu,address,msg"[["", "", "", "", "", "", "提示信息"],["姓名", "", "省", "市", "区", "地址", "提示信息"],["姓名", "电话", "", "市", "区", "地址", "提示信息"],["姓名", "电话", "省", "", "区", "地址", "提示信息"],["姓名", "电话", "省", "市", "", "地址", "提示信息"],["姓名", "电话", "省", "市", "区", "", "提示信息"],["姓名", "电话", "省", "市", "区", "地址", "操作成功"],],
)
def test_new_address(user_driver,name,tel,sheng,shi,qu,address,msg):user_driver.get("新增地址页面网址")page=AddressPage(user_driver)page.click_new()page.input_info(name,tel,sheng,shi,qu,address,)page.click_save()assert page.msg.text ==msg

4.生成Allure测试报告

安装

pip install allure-pytest

启用插件

创建pytest.ini文件
写入:[pytest]addopts= --alluredir=./.allure_resultslog_file_level =info

执行用例,生成结果

pytest

生成测试报告

截图

allure.attach(self._driver.get_screenshot_as_png(),)

5.关键字驱动

页面的样式和功能无线,但是用户操作有限,配合excel完成测试。
1.流程
1.1在excel列出用户动作(关键字)
2.框架读取,执行关键字
3.加载其他插件,实现并行测试,失败重试,HTML报告。

二、案例

1.实现后台登录

1.1登录

import time
from os import timesfrom selenium import webdriver
from selenium.webdriver.common.by import By#创建驱动对象
driver=webdriver.Chrome()
#访问被测页面
driver.get("网址")
#页面最大化
driver.maximize_window()
#登录
driver.find_element(By.XPATH,'账号的xpath').send_keys("账号")
driver.find_element(By.XPATH,'密码的xpath').send_keys("密码")
driver.find_element(By.XPATH,'验证码的xpath').send_keys("验证码")
driver.find_element(By.XPATH,'登录按钮xpath').click()
time.sleep(5)
#关闭驱动
driver.quit()

1.2.处理验证码

验证码常用处理方式:
(1)关闭验证码功能
(2)设置万能验证码
(3)通过第三方
3.1获取验证码图片:使用selenium提供的截图方法获取验证码图片。
3.2通过第三方接口发送请求识别验证码内容。
3.3从返回结果的字典中提取验证码结果。

admin_login.py:

import time
from importlib.metadata import files
from os import timesimport requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from urllib3 import request#创建驱动对象
driver=webdriver.Chrome()
#访问被测页面
driver.get("网址")
#页面最大化
driver.maximize_window()
#截图验证码图片
driver.find_element(By.XPATH,'验证码xpath').screenshot("截图名称.png")#通过第三方接口发送请求识别验证码内容
url="第三方链接"
#传递参数信息:用户名、密码、用户id、验证码编号
data={"user":"用户名","pass":"密码","sofid":"用户id","codetype":1902
}
#提取验证码图片
files={"userfile":open("截图名称.png","rb")}
#发送接口请求识别验证码
resp=requests.post(url,data=data, files=files)
#查看响应结果:
res=resp.json()
print(res)
if res["err_no"]==0:code=res["pic_str"]
else:print("验证码识别失败")#登录
driver.find_element(By.XPATH,'账号的xpath').send_keys("账号")
driver.find_element(By.XPATH,'密码的xpath').send_keys("密码")
driver.find_element(By.XPATH,'验证码的xpath').send_keys("code")
driver.find_element(By.XPATH,'登录按钮xpath').click()
time.sleep(5)
#关闭驱动
driver.quit()

1.3.封装识别验证码函数

在utils模块中定义一个函数进行识别验证码:
1.发送接口请求,携带对应的参数信息
2.获取返回结果,提取验证码信息
3.返回验证码实际值

utils.py:

import requestsdef img_code():url = "第三方链接"data = {"user": "用户名","pass": "密码","sofid": "用户id","codetype": 1902}files = {"userfile": open("截图名称.png", "rb")}resp = requests.post(url, data=data, files=files)res = resp.json()if res["err_no"] == 0:code = res["pic_str"]print(f"验证码识别成功:{code}")return codeelse:print("验证码识别失败")return False

进行调用函数使用验证码的值:(admin_login.py:)

#调用验证码识别函数获取验证码
code=img_code()

2.通过cookie保持登录

需要保持登录状态的方式:
1.通过cookie信息的唯一标识符id进行验证
2.让标识符id一直保持登录的状态,那么再次访问就是已登录状态
3.通过cookie的机制原理先获取已登录的id,然后在未登录的页面进行使用并且刷新清除缓存
需要退出登录状态方式:
1.关闭整个浏览器:自动清除cookie信息
2.删除已登录的标识符id:刷新页面,自动退出登录状态
注意点:cookie值修改完成之后,一定要进行清除缓存才能生效

2.1给页面添加cookie

使用selenium提供的方法,需要添加的cookie的内容是键值对的方式。
通过手动添加已登录的cookie信息,绕过登录操作流程,直接保持登录状态。

#给页面添加cookie
driver.add_cookie({"name":"cookie名称","value":"值"}
)
#刷新页面清除缓存
driver.refresh()

2.2获取页面的cookie

cookies=driver.get_cookies()
for i in cookies:print(i)

2.3自动化获取cookie

在第一次登录完成之后,把页面的已登录的cookie信息进行保存,后续直接使用已登录的cookie信息。
获取和使用cookie信息:

#保存cookie信息
def save_cookies(driver):cookies=driver.get_cookies()#将cookies的信息转换成json的格式写入到cookies.json文件中with open("cookies.json","w") as f:f.write(json.dumps(cookies))#使用cookie信息
def load_cookies(driver):#从cookies.json文件中读取cookie信息:#将JSON格式的字符串解析为Python对象try:with open("cookies.json") as f:cookies=json.loads(f.read())#获取cookie信息for cookie in cookies:driver.add_cookie(cookie)else:#刷新driver.refresh()except:pass

判断是否登录:

def is_login(driver):if "管理员登录" in driver.title:print("未登录")return Trueelse:print("已登录")

优化代码:

#自己导入
#创建驱动对象
driver=webdriver.Chrome()
#访问被测页面
driver.get("网址")
#页面最大化
driver.maximize_window()#使用cookie信息
load_cookies(driver)if is_login(driver):#截图验证码图片driver.find_element(By.XPATH,'验证码xpath').screenshot("截图名称.png")#调用验证码识别函数获取验证码code=img_code()#登录driver.find_element(By.XPATH,'账号的xpath').send_keys("账号")driver.find_element(By.XPATH,'密码的xpath').send_keys("密码")driver.find_element(By.XPATH,'验证码的xpath').send_keys("code")driver.find_element(By.XPATH,'登录按钮xpath').click()#保存cookie信息save_cookies(driver)time.sleep(5)#关闭驱动driver.quit()

三、excel进行数据加载

1.安装第三方工具

#安装
pip install openpyxl
#查看
pip list

2.封装函数

from openpyxl import load_workbook#读取excel数据
def read_excel(path):#打开文件wb=load_workbook(path)#获取默认的工作表:第二行开始为数据ws=wb.activefor d in ws.iter_rows(min_row=2,values_only=True):yield dif __name__=='__main__':#路径如果抛出unicodeescape错误,‌使用双反斜杠‌\\,或者使用正斜杠‌/,或者加rdata=read_excel('excel表格路径')for d in data:print(d)

3.使用数据

@pytest.mark.parametrize(("wd","count"),read_excel('D:\\installer\\Python\\xm\\pythonProject3\\ddt.xlsx'))

内容学自b站 码尚软件测试平台 和 巨量质量管理平台

http://www.hrbkazy.com/news/33202.html

相关文章:

  • 网站建设项目合同专业网站优化培训
  • 策划方案范文南昌seo管理
  • 学做网站用谁的书b2b网站免费推广
  • 兰州网站建设q479185700強小米市场营销案例分析
  • 西安企业网站建设哪家专业百度指数快刷软件
  • 免费建立网站的网站都有啥黄冈网站推广
  • 如何做网站的下载的二维码网络运营推广
  • 网站建设中 源码千锋教育的it培训怎么样
  • 那个网站做二手车好青岛今天发生的重大新闻
  • 平台型综合电子商务的平台有哪些郑州seo网站管理
  • 做网站哪个公司百度竞价推广效果怎么样
  • 中天建设哪里的网站排名优化软件哪家好
  • 招聘网站建设方案模板下载哪里有免费的网站推广服务
  • 付费的网站是指连云港百度推广总代理
  • 如何制作网络游戏seo排名赚钱
  • 用js做简单的网站页面2024年最新时事新闻
  • 中国风网站模板html深圳百度关键
  • 网站开发外包一个学生个人网页设计作品
  • 郑州快速建站价格企业搜索引擎优化
  • 培训网页制作机构廊坊seo推广公司
  • 网站开发去哪里培训建网站哪个平台好
  • 有什么做网站的国企网站制作推广
  • 网站开发日志如何做个网站推广自己产品
  • 我想学网站建设做个公司网站一般需要多少钱
  • 外贸seo优化方法seo优化推广工程师招聘
  • 信誉好的盐城网站开发百度收录排名查询
  • jsp网站开发技术淘宝宝贝关键词排名查询工具
  • wordpress 批量改日期seo技巧与技术
  • 做简历的网站有seo sem是什么职位
  • 关于建设网站群的报告厦门关键词排名优化