如何优雅编写测试用例
在编写测试用例之前,首先应该根据所在公司、项目组的特点,提前制定好对应的测试用例模板以及用例维护方式,比如:Excel、XMind、TestLink、禅道等。 测试用例的组成通常包含以下内容(具体字段根据业务需要取舍): 用例编号 作为测试用例的唯一标识。编号取值规则可以根据项目名称各中文首字母大写 + 六位数字构成,例如:“蔡坨坨电商项目” 在登录功能子模块的第一条用例编号可取值为 CTTDS_000001。 用例标题 又称之为测试点,用一句话来描述测试用例的关注点,每一条用例对应一个测试目的。 一个好的测试用例应该关注标题的规范性,一般来说如果设计用例标题不规范,别人在使用你的测试用例时,就无法做到清晰明了,就会浪费很多时间在沟通上。 并且需要控制用例的粒度,从测试执行者的角度来说,过细的测试用例会让执行者感到疲惫繁琐,过粗的测试用例又容易导致检查点遗漏。所以测试用例标题一般控制在 30 个字以内。 功能模块 根据项目模块层级关系填写,例如:组织权限。 测试目的 简要的测试目的,例如:账号密码功能校验。 前置条件 用例在执行之前需要满足的一些条件,否则用例无法执行,...
Python 开发之序列化与反序列化:pickle、json 模块使用详解
引言 在日常开发中,所有的对象都是存储在内存当中,尤其是像 python 这样的坚持一切接对象的高级程序设计语言,一旦关机,在写在内存中的数据都将不复存在。另一方面,存储在内存够中的对象由于编程语言、网络环境等等因素,很难在网络中进行传输交互。由此,就诞生了一种机制,可以实现内存中的对象与方便持久化在磁盘中或在网络中进行交互的数据格式(str、bites)之间的相互转换。这种机制就叫序列化与反序列化: 序列化:将内存中的不可持久化和传输对象转换为可方便持久化和传输对象的过程。 反序列化:将可持久化和传输对象转换为不可持久化和传输对象的过程。 Python 中提供 pickle 和 json 两个模块来实现序列化与反序列化,pickle 模块和 json 模块 dumps()、dump()、loads()、load()这是个函数,其中 dumps()、dump()用于实现序列化,loads()、load()用于实现反序列化。下面,我们分别对 pickle 和 json 模块进行介绍。 pickle 模块 pickle 模块的 dumps()、dump()、loads()、lo...
Python 中输出表格的两种方式
前言 本文主要介绍 python 中输出表格的两种方式,即分别使用tabulate 和 prettytable。 tabulate安装、导入123pip install tabulatefrom tabulate import tabulate 从 list 生成表格1234567>>> table = [['First Name', 'Last Name', 'Age'], ['John', 'Smith', 39], ['Mary', 'Jane', 25], ['Jennifer', 'Doe', 28]]>>> print(tabulate(table))---------- --------- ---First Name Last Name AgeJohn Smith 39Mary Jane 25...
Sed 备忘清单
入门 Sed 用法 语法 1$ sed [options] command [input-file] 带管道 1$ cat report.txt | sed 's/Nick/John/g' 1$ echo '123abc' | sed 's/[0-9]+//g' 选项示例 参数 示例 描述 -i sed -ibak ‘s/On/Off/‘ php.ini 直接备份和修改输入文件 -E sed -E ‘s/[0-9]+//g’ input-file 使用扩展正则表达式 -n sed -n ‘3 p’ config.conf 禁止默认图案空间打印 -f sed -f script.sed config.conf 执行 sed 脚本文件 -e sed -e ‘command1’ -e ‘command2’ input-file 执行多个 sed 命令 多个命令12$ echo "hello world" | se...
Xpath 轴,函数,谓语笔记
函数 函数 例子 解释 starts-with //div[starts-with(@id,”maida”)] 选取 id 值为 maida 开头的 div contains //div[contains(@id,”maida”)] 选取 id 值含 maida 的 div and //div[starts-with(@id,”maida”) and contains(@id,”hello”)] 选取 id 值为 maida 开头且含有 hello 的 div text() 1. //p/text() 2. div[contains(text(),”maida”)] 1. 获取 p 的文本内容 2. 选取文本内容含 maida 的 div string 1. string(.) 2. string(//div/a) 1. 获取当前节点的文本内容组合成的单独字符串 2. 获取 //div/...
使用 Xpath 定位元素
什么是 XpathXPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。 XPath 定位在爬虫和自动化测试中都比较常用,通过使用路径表达式来选取 XML 文档中的节点或者节点集,熟练掌握 XPath 可以极大提高提取数据的效率。 因为 XPath 解析数据,是基于元素(Element)的树形结构,所以学习 XPath 前,先了解一下 html 的结构及常用标签。 基本标签 1234567891011121314151617 标题:`<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<title>`段落:<p>链接:<a>图像:<img>样式:<style>列表:` 无序列表 <ul>、有序列表 <ol>、列表项 <li>`块:`<div>、<span>`脚本:<script>注释:&l...
禁用 vim 的 visual 模式
前言 从 Debian9 开始,为了便于选取文本,VIM 引入了可视 (Visual) 模式。 可以使用以下三种模式: 用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。 用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。 用 ctrl-V 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。 个人用不太习惯,此处记录一下如何 disable 这个功能。 方法 通过编辑 vim 配置文件去除默认设置的鼠标模式a。可以编辑全局 /etc/vim/vimrc.local 或者当前用户配置文件~/.vimrc 1234567tee /etc/vim/vimrc.local << EOFsource $(find / -name defaults.vim)let skip_defaults_vim = 1if has('mouse') set mouse-=aendifEOF 此处也记录...
一些 git 笔记
Git global setup12git config --global user.name "Your Name"git config --global user.email "your.name@example.com" Create a new repository on the command line1234567echo "# template" >> README.mdgit initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin git@github.com:Chasing66/template.gitgit push -u origin main Push an existing repository from the command line123git remote add origin git@github.com:Chasing66/te...
使用 Apche/Nginx 在 Ubuntu 22.04 上安装 RailLoop
前言RainLoop 是一个简单,现代,快速和开源的基于 Web 的电子邮件客户端,用 PHP 编写。 Rainloop 特性 现代的 Web 界面,允许上传自定义主题 快速轻便 同时支持 SMTP 和 IMAP 支持多个帐户,可以从一个地方访问所有电子邮件地址。 支持双因素身份验证。 与 Facebook, Twitter, Google, and Dropbox 集成 无需数据库, 可以直接访问邮件服务器 易于安装和升级(在管理面板中一键升级) Rainloop 版本选择Rainloop 有标准版和社区版两个版本, 本文使用社区版(免费) 安装 Step 1: Install Apache + PHP7 或者 Nginx + PHP7 如果使用 Apache 和 PHP712sudo apt updatesudo apt install apache2 php7.4 libapache2-mod-php7.4 如果使用 Nginx 和 PHP712sudo apt updatesudo apt install nginx php7.4 php7.4-fpm php7.4-...
git 撤销提交
未使用 git add 的时候 – 在工作区 放弃修改某个文件1git checkout -- filepathname 放弃所有修改的文件12git checkout .git restore . 已经使用 git add 的时候 – 在暂存区 恢复某个文件到工作区1git reset HEAD filepathname 恢复所有文件到工作区git reset HEAD .git reset 1注意:这里只是恢复到了工作区,如果想放弃修改的代码还需要执行步骤 1(工作区)中的操作 已经使用 git commit 提交的了代码 – 在版本区 (本地仓库) 全部撤回并回到远程仓库最新的状态(不保存代码修改)1234# 回退到上一版本git reset --hard HEAD^# 指定 commit id 回退git reset --hard commit_id 拉回工作区并保存修改。只撤销 commit 和 add(保存代码修改)123git reset --mixed HEAD^# 或者git reset HEAD^ 撤销 commit 但是不撤销 add(保存...