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

潮品服饰网站建设规划书sem竞价推广

潮品服饰网站建设规划书,sem竞价推广,五大建设的主要内容,网站开发看掉一些功能文章目录 一、参数化测试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.dtcms.com/wzjs/331066.html

相关文章:

  • 深圳营销型网站建设公司网络服务电子商务营销策略有哪些
  • asp.net网站开发技术关键词排名霸屏代做
  • 做一款app需要网站吗ui设计公司
  • 龙港做网站店铺如何建网站赚钱
  • 桥头东莞网站建设小熊猫seo博客
  • 台前做网站的公司市场调研分析报告模板
  • 分销网站有哪些鸣蝉智能建站
  • 求网站建设的视频搜盘 资源网
  • 泗门网站建设国际新闻最新消息今天
  • 做设计一般用的素材网站是什么意思seo按天计费系统
  • 学历教育网站建设山西网络营销seo
  • 中国制造网网站2021近期时事新闻热点事件
  • 直播网站建设方案淄博新闻头条最新消息
  • 网站增加栏目后面要怎么做网站建设工作总结
  • 企业服务建设网站百度关键词优化公司哪家好
  • 网站信息报送制度建设合肥正规的seo公司
  • 成都pc网站建设最新国内新闻10条
  • wordpress合集东莞关键字排名优化
  • 网站建设没有图片搜狗收录提交入口
  • 滁州市南谯区建设局网站百度指数总结
  • 孝义网站开发公司广州最新疫情通报
  • qq网站官网营销型网站建设
  • 做网页的软件下载手机版优化公司结构
  • 中山外贸网站建设公司成都抖音seo
  • 中学生网站制作互联网平台公司有哪些
  • 聊城pc网站建设软件媒体软文发稿
  • 宁德网站开发seo外包资讯
  • app使用什么做的网站吗cps广告联盟平台
  • 本机做web打开网站无法显示网站百度统计登录
  • 公司注销后 网站备案吗短视频培训机构