测试用例生成工具 PairwiseTesting

成对测试 (PairwiseTesting)

recommend: China-GiteeOther-Github

自动组合生成测试用例场景,帮助提升用例测试覆盖率

PairwiseTesting,又称 结对测试、两两测试,是一种正交分析的测试方法。

以往: 设计测试用例时,覆盖至少要求任意两个字段(输入条件)的所有水平组合,至少要被覆盖1次。如果多个字段的枚举值组合,人工计算时间成本很大。

现在: PairwiseTesting 让你节省时间 无需人工计算,自动实现测试用例成对组合覆盖

中文文档

English Document

示例

用例字段(枚举值)

img

 

用例组合结果

img

 

使用

1.环境

(1)Nodejs

如果你电脑还未安装配置nodejs环境,请参考:https://www.runoob.com/nodejs/nodejs-install-setup.html

下载Nodejs

https://npm.taobao.org/mirrors/node/v12.13.0/

(建议版本使用v12.13.0 小于v15.0)

如果已安装配置nodejs,可跳过此步骤

(2)安装

命令行执行

npm install

2.使用

(1)打开excel表 fields_enumerator.xlsx,写入你的用例字段、枚举值

img

 

(2)开始生成

命令行执行

mocha

(3) 结果输出

文件类型文件名称
csv2020-4-31-9-51-48.csv
txt2020-4-31-9-51-48.txt
json2020-4-31-9-51-48.json
xml2020-4-31-9-51-48.xml

output文件夹下

img

 

csv

img

 

txt

例如:2020-4-30-22-39-54.txt

账号正常,密码过短,验证码正常,取消
账号正常,密码过长,验证码空,确定
账号空,密码正常,验证码过短,确定
账号不存在,密码不存在,验证码过短,取消
账号过长,密码过长,验证码正常,取消
账号正常,密码空,验证码过短,确定
账号不存在,密码过短,验证码空,取消
账号空,密码过长,验证码过长,取消
账号过长,密码过短,验证码过长,确定
账号空,密码空,验证码不匹配,取消
账号不存在,密码过长,验证码过长,确定
账号过短,密码不存在,验证码正常,确定
账号过长,密码空,验证码不匹配,确定
账号过短,密码过长,验证码过短,取消
账号过短,密码不存在,验证码不匹配,确定
账号空,密码过短,验证码不匹配,确定
账号过长,密码空,验证码空,确定
账号过短,密码过短,验证码过短,确定
账号过短,密码不存在,验证码过长,确定
账号正常,密码正常,验证码过长,取消
账号正常,密码过长,验证码不匹配,确定
账号过长,密码不存在,验证码过短,确定
账号空,密码不存在,验证码正常,确定
账号不存在,密码空,验证码正常,确定
账号过短,密码空,验证码过长,确定
账号过长,密码正常,验证码正常,确定
账号正常,密码不存在,验证码空,确定
账号空,密码空,验证码空,确定
账号过短,密码正常,验证码空,确定
账号不存在,密码不存在,验证码正常,取消
账号不存在,密码正常,验证码不匹配,确定

json

img

 

xml

img

 

控制台输出

  [ '账号过短', '密码正常', '验证码空', '取消' ],
  [ '账号空', '密码正常', '验证码过长', '取消' ],
  [ '账号正常', '密码不存在', '验证码正常', '确定' ],
  [ '账号不存在', '密码空', '验证码不匹配', '取消' ],
  [ '账号过短', '密码过短', '验证码不匹配', '确定' ],
  [ '账号空', '密码过长', '验证码不匹配', '确定' ],
  [ '账号过短', '密码空', '验证码空', '确定' ],
  [ '账号过短', '密码正常', '验证码正常', '取消' ],
  [ '账号正常', '密码不存在', '验证码过长', '取消' ],
  [ '账号过短', '密码不存在', '验证码过短', '取消' ],
  [ '账号不存在', '密码空', '验证码过长', '确定' ],
  [ '账号过短', '密码过长', '验证码过短', '确定' ],
  [ '账号正常', '密码过长', '验证码不匹配', '取消' ],
  [ '账号不存在', '密码过短', '验证码正常', '取消' ],
  [ '账号空', '密码空', '验证码正常', '确定' ],
  [ '账号过长', '密码不存在', '验证码不匹配', '取消' ],
  [ '账号过长', '密码过长', '验证码正常', '确定' ],
  [ '账号不存在', '密码正常', '验证码空', '确定' ],
  [ '账号过长', '密码过短', '验证码空', '确定' ],
  [ '账号不存在', '密码过短', '验证码过短', '确定' ],
  [ '账号正常', '密码空', '验证码过短', '确定' ],
  [ '账号过长', '密码正常', '验证码过短', '确定' ],
  [ '账号正常', '密码正常', '验证码不匹配', '确定' ],
  [ '账号过短', '密码过短', '验证码过长', '确定' ],
  [ '账号过长', '密码空', '验证码过长', '确定' ],
  [ '账号正常', '密码过短', '验证码空', '确定' ],
  [ '账号空', '密码不存在', '验证码过短', '确定' ],
  [ '账号不存在', '密码过长', '验证码过长', '确定' ],
  [ '账号空', '密码过短', '验证码空', '确定' ],
  [ '账号不存在', '密码不存在', '验证码空', '确定' ],
  [ '账号空', '密码过长', '验证码空', '确定' 
好的,这是一个比较完整的文本处理流程,需要用到一些Python库和工具。首先,我们需要安装以下几个库: - jieba:中文分词工具 - gensim:用于计算段落向量、文章向量等 - sklearn:用于聚类分析 安装方法: ```python pip install jieba gensim scikit-learn ``` 接下来,我们可以开始编写代码了。首先是导入文件并进行中文分词: ```python import jieba # 读取文件 with open('example.txt', 'r', encoding='utf-8') as f: content = f.read() # 中文分词 seg_list = jieba.cut(content) ``` 其中,`example.txt`是待处理的文件名,可以根据实际情况进行修改。`jieba.cut`函数会返回一个生成器,我们可以将其转化为列表,并去掉一些无用的词汇: ```python # 过滤无用词汇 stop_words = ['的', '了', '在', '是', '我', '你', '他', '她', '它', '我们', '你们', '他们', '她们', '它们'] word_list = [word for word in seg_list if word not in stop_words and len(word) > 1] ``` 接下来是计算段落向量和文章向量。我们可以将一篇文章看做是多个段落的集合,将每个段落的向量求平均得到文章向量,或者将每个段落的向量权重相加得到文章向量。这里我们使用前一种方法: ```python import numpy as np from gensim.models import Word2Vec # 训练词向量模型 model = Word2Vec([word_list], size=100, window=5, min_count=1, workers=4) # 计算段落向量 doc_vectors = [] for i in range(0, len(word_list), 100): words = word_list[i:i+100] vec = np.zeros(100) for word in words: vec += model.wv[word] vec /= len(words) doc_vectors.append(vec) # 计算文章向量 avg_vector = np.mean(doc_vectors, axis=0) ``` 其中,`Word2Vec`函数用于训练词向量模型,`doc_vectors`列表用于存储每个段落的向量,`avg_vector`向量用于存储文章向量。 接下来是将内容向量化。我们可以使用onehot、TF-IDF和BoW等方法将每个词汇转化为向量。这里我们使用TF-IDF方法: ```python from sklearn.feature_extraction.text import TfidfVectorizer # 将文本内容转化为向量 vectorizer = TfidfVectorizer() vectorizer.fit_transform([content]) content_vector = vectorizer.transform([content]) ``` 最后是计算网页相似度和进行聚类分析。我们可以使用余弦相似度来计算两篇文章之间的相似度,并使用K-Means算法进行聚类分析: ```python from sklearn.metrics.pairwise import cosine_similarity from sklearn.cluster import KMeans # 计算网页相似度 similarity_matrix = cosine_similarity(content_vector) # 聚类分析 kmeans = KMeans(n_clusters=3, random_state=0).fit(similarity_matrix) labels = kmeans.labels_ cluster_count = max(labels) + 1 ``` 其中,`cosine_similarity`函数用于计算相似度矩阵,`KMeans`函数用于进行聚类分析,`labels`列表用于存储每个文章所属的簇的标号,`cluster_count`变量用于存储聚类簇的数量。 完整代码如下: ```python import numpy as np from gensim.models import Word2Vec from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity from sklearn.cluster import KMeans import jieba # 读取文件 with open('example.txt', 'r', encoding='utf-8') as f: content = f.read() # 中文分词 seg_list = jieba.cut(content) # 过滤无用词汇 stop_words = ['的', '了', '在', '是', '我', '你', '他', '她', '它', '我们', '你们', '他们', '她们', '它们'] word_list = [word for word in seg_list if word not in stop_words and len(word) > 1] # 训练词向量模型 model = Word2Vec([word_list], size=100, window=5, min_count=1, workers=4) # 计算段落向量 doc_vectors = [] for i in range(0, len(word_list), 100): words = word_list[i:i+100] vec = np.zeros(100) for word in words: vec += model.wv[word] vec /= len(words) doc_vectors.append(vec) # 计算文章向量 avg_vector = np.mean(doc_vectors, axis=0) # 将文本内容转化为向量 vectorizer = TfidfVectorizer() vectorizer.fit_transform([content]) content_vector = vectorizer.transform([content]) # 计算网页相似度 similarity_matrix = cosine_similarity(content_vector) # 聚类分析 kmeans = KMeans(n_clusters=3, random_state=0).fit(similarity_matrix) labels = kmeans.labels_ cluster_count = max(labels) + 1 print('聚类簇的数量:', cluster_count) print('聚类结果:', labels) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liyinchi1988

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值