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

软件测试大赛web测试-python【备赛1】

环境配置

步骤1:创建项目(关键步骤)

  • 选择 虚拟环境 (venv)

  • 基础解释器选择:D:/Anaconda3/python.exe

  • 勾选"从基础解释器继承软件包"

  • 位置:项目目录下的 .venv 文件夹

步骤2:安装测试包(使用国内镜像)

在 PyCharm Terminal 中执行:

pip install selenium pytest requests beautifulsoup4 webdriver-manager pytest-html -i https://pypi.tuna.tsinghua.edu.cn/simple/

步骤3:验证安装

pip list | findstr -i "selenium\|pytest\|requests"
python -c "import selenium, pytest, requests; print('✅ 所有包安装成功!')"
pip install selenium
pip install selenium pytest requests beautifulsoup4 webdriver-manager -i https://pypi.tuna.tsinghua.edu.cn/simple/
/python/lib/site-packages
​
pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple/
在设置-集成工具-默认测试运行程序选择pytest

chrome driver

C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe

确保已安装 pytest:

pip install pytest selenium

代码基于pytest框架编写,命令行执行

pytest test.py --tb=short -v

比赛注意事项(必须严格遵守)

1. 函数命名规范

  • 一个需求对应一个函数,函数名必须为 test_CtripFlight_Rxxx

  • 不可多写函数(如 test_CtripFlight_R001_001),也不可少写。

  • 需求编号必须是 R001R002R003数字 0 不能写成字母 O

2. 测试用例 Excel 文档

  • 用例编号CtripFlight_Rxxx_xxx(如 CtripFlight_R001_001

  • 模块名称单程机票查询

  • 需求编号R001R002R003(区分大小写和数字)

  • 截图文件名:与用例编号完全一致,如 CtripFlight_R001_001.png

  • 复制粘贴到 Excel 的 Sheet1(从 A2 单元格开始)

  • 选中 “输入数据”列(G列)

  • Ctrl + H → 查找 \n → 在替换框中直接按 Ctrl + J 代表换行符

  • 保存为 测试用例模版.xlsx

3. 脚本结构要求

  • 代码必须写在 // test-code-start// test-code-end 之间。

  • 不要修改红框外的任何代码

  • 提交前将驱动路径换回官方路径:

  • 文件编码必须为 UTF-8

4. 截图与压缩包

  • 所有截图必须放在 screenshots 文件夹中。

  • 提交时打包为 .zip 格式,不要用 .rar

  • 每条用例只保留一张截图,删除调试时生成的多余时间戳截图。

知识点:

1. 有效等价类 + 边界值分析:

等效的有效日期[2025-11-01, 2025-11-15],边界值选最小值2025-11- 01、最大值2025-11-15、中间值2025-11-08

2. 无效等价类 + 边界值分析

等价的无效日期,边界值选择紧邻有效区间的无效值,早一天2025-10-31,晚一天2025-11-16

往返有效: 有效等价类 出发日=2025-11-01 返程日:2025-11-01(同天) 2025-11-15(最后一天) 2025-11-08(中间) 往返无效: 无效等价类 出发日=2025-11-02 返程日=2025-11-01(早于出发) 返程日=2025-11-17(超预售期)

3. 元素,标签名,关键属性,定位方式(By.ID,XPath,LINK_TEXT)

在 Console 中输入:document.getElementBy("")

LINKTEXT 定位

driver.find_element(By.LINK_TEXT, "单程")

  • 标签名是 <a>,通常有 href 属性(跳转链接)

  • 文字完全匹配(忽略前后空格)

  • Console:document.querySelector('a:contains("单程")')(需 jQuery)

Xpath

不要直接复制浏览器“Copy XPath”生成的绝对路径,而应根据 DOM 树结构(语义 + 属性)

在 Chrome DevTools 中右键 → Copy → Copy XPath,得到的通常是绝对 XPath,例如: //*[@id="leftSideNavLayer"]/div/div/div[2]/div/div[1]/div/div[2]/button 根据 DOM 树结构手动编写相对 XPath

步骤 1:用 DevTools 查看元素的真实结构

“机票”按钮的 HTML:

<button aria-label="机票 按回车键打开菜单" class="lsn_top_nav_qdgwe ...">
​<span class="...">机票</span>
​
</button>

步骤 2:提取稳定、语义化的特征

  • 文本内容:<span>机票</span>最稳定!用户看到的就是这个

  • 标签类型:<button> → 表明可点击

  • 属性:aria-label="机票..." → 辅助定位(但文本可能变)

步骤 3:编写相对 XPath(推荐以下任一)

推荐 1:通过内部文本定位(最通用)

//button[.//span[text()='机票']]

  • 含义:找一个 <button>,其内部任意 <span> 的文本是 “机票”

  • 优点:不依赖 class/id,抗结构变化,语义清晰

推荐 2:通过 aria-label 定位(次选)

//button[@aria-label='机票 按回车键打开菜单']

  • 优点:属性通常较稳定

  • 缺点:如果提示文字微调(如多一个句号),会失效

推荐 3:模糊文本匹配(容错更强)

//button[contains(., '机票')]

  • 含义:按钮内部任意位置包含“机票”文字

  • 适合文本前后有空格、换行的情况

如何验证你写的 XPath 是否正确?

在 Chrome DevTools 的 Console 中执行:

$x("//button[.//span[text()='机票']]")

  • 如果返回 [button](非空数组),说明 XPath 正确

  • 点击返回的元素,页面会高亮对应按钮

💡 小技巧:$x("") 是 Chrome 对 XPath 的支持,$$() 是对 CSS Selector 的支持

总结

元素有固定 id(如search_btnBy.ID(最优先)
元素有明确可见文本(如“机票”、“搜索”)//标签名[text()='xxx']//标签名[contains(., 'xxx')]
元素无 id、无文本,但有稳定 classBy.CSS_SELECTOR//标签名[contains(@class, 'xxx')]
需要定位子元素中的文本(如你的“机票”按钮)//button[.//span[text()='机票']]

优先选择:语义 + 稳定属性,而非路径长度

只验证“能否找到元素”,不验证“操作是否符合业务逻辑”

http://www.dtcms.com/a/558842.html

相关文章:

  • NetSuite 如何利用工作流抓住PO关键信息的变动?
  • 找聊城做网站sem优化系统
  • 上海市城乡建设部网站首页网站文章要求
  • 深入洞察:AI技术突破及应用成熟评估方法
  • wordpress网址域名2019做网站seo行不行
  • 可以免费进的服务器网站上海市网站建设公司
  • 怎么做点播网站论坛网站免费建设模板下载
  • 品牌网站建设策划书陕西 网站建设 陕ICP
  • 网站404页面在哪查看孔夫子旧书网网站谁做的
  • tag 网站备案湖南省郴州市北湖区
  • 网站开发微盘百度搜索推广的五大优势
  • 智慧交通红绿灯检测数据集VOC+YOLO格式1215张3类别
  • 做网站用小公司还是大公司好广西住房城乡建设厅官方网站
  • 网站开发报价技巧上海招聘信息最新招聘
  • 长沙做彩票网站公司打金新开传奇网站
  • 网站根目录权限设置wordpress背景设置
  • 计算机操作系统:与设备无关的I/O软件
  • 怎么做一个公司网站广州装修公司哪家好
  • 百度网站优化升上去营销策略ppt模板
  • 仓颉语言实战:无重复字符的最长子串工具库
  • pg_stat 视图介绍
  • 游戏网站cms网站做好了前端 后端怎么做
  • 青岛住房和城乡建设厅网站个人注册域名和公司注册域名区别
  • 京东e卡 滑块分析
  • 嘉兴制作网站深圳网站建设最专业的
  • 网站打开速度慢 如何优化做网站收会员费
  • 网站制作公司网址wordpress 无刷新翻页
  • 临汾网站建设 吕梁网站建设郑州新闻最新消息
  • 网站开发学些什么软件电商平台是干什么的
  • 宜城网站定制seo推广计划