测试工程师的福利!各远程移动测试平台对比分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
本文由腾讯移动品质中心TMQ发表于云+社区专栏
背景
随着移动设备和系统的碎片化程度越来越高以及复杂的移动网络情况, 兼容性测试以及远程真机测试的重要性越来越突出。根据远程测试机/人员与开发者间的合作方式,可以分为以下几种服务:...[2018/10/10]
Allure--自动化测试报告生成
之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告,对这两个报告都不能满意。后经查找资料,发现有个神器:
Allure(已经有allure2了,笔者使用的就是allure2),生成的测试报告与上述两种对比,简直完美!先上个测试报告的图表,给大家直观感受下:
&n...[2018/10/10]
pytest 测试报告 - Jerry-Learn
测试报告
运行测试用例后,为了保存结果,我们需要生成测试报告,同时可以把运行的测试报告发送相关人员查阅,这时需要安装一个插件(pytest-html)
pytest-html插件安装
pip install -U pytest-html
编写测试用例
#coding: UTF-...[2018/10/10]
Kafka个人总结
Kafka 应对场景:消息持久化、吞吐量是第一要求、状态由客户端维护、必须是分布式的。Kafka 认为 broker 不应该阻塞生产者,高效的磁盘顺序读写能够和网络 IO 一样快,同时依赖现代 OS 文件系统特性,写入持久化文件时并不调用 flush,仅写入 OS pagecache,后续由 OS...[2018/10/9]
分布式系统关注点——仅需这一篇,吃透「负载均衡」妥妥的
本文长度为3426字,预计读完需1.2MB流量,建议阅读9分钟。
阅读目录
「负载均衡」是什么?
常用「负载均衡」策略图解
常用「负载均衡」策略优缺点和适用场景
用「健康探测」来保障高可用
结语
...[2018/10/9]
分布式缓存架构设计
零、 题记 在高并发场景下,需要通过缓存来减少数据库的压力,使得大量的访问进来能够命中缓存,只有少量的需要到数据库层。由于缓存基于内存,可支持的并发量远远大于基于硬盘的数据库。所以对于高并发设计,缓存的设计是必不可少的一环。 一、为什么要使用缓存 为什么要使用缓存呢?源于人类的一个梦想,就是多...[2018/10/9]
HRMS(人力资源管理系统)-SaaS架构设计-概要设计实践HRMS(人力资源管理系统)-SaaS架构设计-概要设计实践
一、开篇
前期我们针对架构准备阶段及需求分析这块我们写了2篇内容《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇》《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(...[2018/10/9]
使用Consul做服务发现的若干姿势使用Consul做服务发现的若干姿势
从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后来逐步应用于生产环境,并总结了少许使用经验。最开始使用Consul的人不多,为了方便交流创建了一个QQ群,这两年微服务越来越火,使用Consul的人也越来越多,目前群里已有400多人,经常有人问一些问题,比如:
服务注册到...[2018/10/9]
dubbo+zipkin调用链监控(二)
问题
给定两个字符串,删除字符使得两个字符串相等,如何删使得删除的字符的ASCII和最小。
Input: s1 = "sea", s2 = "eat"
Output: 231
Explanation: 115(s) + 116(t) = 231
思路
用dp[i][j]表示s1[:i]...[2018/10/9]
K-近邻算法(KNN)K-近邻算法(KNN)
问题
给定一个数组,第i个元素表示第i天股票的价格,可执行多次“买一次卖一次”,每次执行完(卖出后)需要小费,求最大利润
Input: prices = [1, 3, 2, 8, 4, 9], fee = 2
Output: 8
Explanation: ((8 - 1) - 2) + (...[2018/10/9]
Dijkstra算法堆优化(vector建图)
#include<iostream>
#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<queue>
#include <vector>
#i...[2018/10/9]
646. Maximum Length of Pair Chain
问题
给定n对数,每对数里面第一个数比第二个数小。现在定义(c,d)可以跟在(a,b)后面组串,如果b<c。问最多能组多长的串。
Input: [[1,2], [2,3], [3,4]]
Output: 2
Explanation: [1,2] -> [3,4]
思路
当(...[2018/10/9]
最全的机器学习资料
原文 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习牵涉的编程语言十分之广,包括了MAT...[2018/10/9]
盘点5个黑科技编程工具网站,每一个强大到你无法想象!
【wifi密码破解软件下载】
Cerebro
这是一个免费的快速对话工具,支持Windows,MacOS,Linux。可以随意的修改软件,是不是很不错呢? 盘点5个黑科技编程工具网站,每一个强大到你无法想象! Fish Shell
这是一个设计软件主体和配色的工具,非...[2018/10/8]
软件工程概论之作业1,二柱子的逆袭
问题:
某家软件公司的程序员二柱家小孩上了小学二年级,老师让家长每天出30到四则运算题目给小学生做。二柱子利用了自己编程的知识来解决这个问题。
我选择了matlab来处理这个问题
代码:
A=randi([1 4],30,1); disp (''请开始答题''); for i=1:30 &...[2018/10/8]
《Spring Cloud微服务实战》读书笔记之基础知识1
摘要
微服务是一种系统架构的设计风格,它主旨在于将一个原本独立的系统,拆分成多个独立运行的小型服务。不同服务之间通过Restful接口进行通讯协作。
关键词:Spring Cloud,微服务
一、什么是微服务
微服务是一种系统架构的设计风格,它主旨在于将一个原本独立的系统,拆分成多个独立运行的...[2018/10/8]
对Tomcat 8.0进行JVM层面的优化(基于Oracle JDK 8)
目录
1 Tomcat的内存调优
1.1 Tomcat的内存占用
1.2 内存配置相关参数
1.3 内存调优实践
1.4 验证配置效果
2 GC策略调优实践
Tomcat容器是运行在JVM上的, 其默认内存一般都很小(物理内存的1/64), 在实际生产环境中, 若不配置则会极大浪费服务器资...[2018/10/8]
CDN使用心得:加速双刃剑
文章图片存储在GitHub,网速不佳的朋友,请看《CDN 使用心得:加速双刃剑》 或者 来我的技术小站 godbmw.com
本文以腾讯云平台的 CDN 服务为例,记录下在个人网站开发和公司项目实战中的对 CDN 使用的心得:便宜没好货。
1. 什么是 CDN?
CDN 的全称是 Conte...[2018/10/8]
IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
DIP依赖倒置原则:系统架构时,高层模块不应该依赖于低层模块,二者通过抽象来依赖 依赖抽象,而不是细节 贯彻依赖倒置原则,左边能抽象,右边实例化的时候不能直接用抽象,所以需要借助一个第三方 高层本来是依赖低层,但是可以通过工厂(容器)来决定细节,去掉了对低层的...[2018/10/8]
pyhton 面向对象之 小明左右手换牌
'''''' #左右手交换牌 案列 #小明手里有俩张牌,左手红桃?K,右手黑桃?A,小明交换俩手的牌后,手里分别是什么? 人类: 属性:小明,左手,右手 行为:展示手里的牌, 交换手里的牌 手类: ...[2018/10/8]
Git 学习总结
概况
CVS 及 SVN 都是集中式的版本控制系统,而 Git 是分布式版本控制系统。 集中式版本控制系统最大的毛病就是必须联网才能工作; 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这 样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。 和集中式版...[2018/10/8]
replace函数使用方法
Replace函数的含义~ 用新字符串替换旧字符串,而且替换的位置和数量都是指定的。 replace函数的语法格式 =Replace(old_text,start_num,num_chars,new_text) =replace(要替换的字符串,开始位置,替换个数,新的文本) 举例子...[2018/10/8]
京东万象数据接口,钱没花完,接口404,客服是白痴,无法维权
由于业务需求,买了一个银行卡信息查询的接口。就是考虑到免费的接口容易挂,聚合等平台感觉小了,爬麻烦,于是找到了京东万象。以为京东好歹是个大平台。于是在万象1000块买了10万次的查询接口。 9月15日,10万次的接口,用了400余次之后,出问题了 在排查本地程序之后,首先去接口看,发...[2018/10/8]
洛谷模拟NOIP考试反思
洛谷模拟NOIP考试反思想法 考了这么简单的试qwq然而依然emmmmmm成绩不好 虽然本次难度应该是大于正常PJ难度的但还是很不理想,离预估分数差很多qwq 于是就有了本反思嘤嘤嘤比赛链接原比赛链接(已结束但仍然可提交)题目解析反思第一题 超简单(虽然仍然没做对) 第二题 代码扔上来qwq(虽...[2018/10/8]
markdown基础入门markdown基础入门
一、标题
语法:# 文字
注意:1个#号代表标题1,两个代表标题2,依次类推
# 标题1
## 标题2
### 标题3
#### 标题4
##### 标题5
###### 标题6
二、加粗,斜体
语法:使用**和*包裹
例如:
a.**我加粗了哦**
b.*我是斜体*
我...[2018/10/8]
LALR(1)分析实现一个简易的正则表达式引擎LALR(1)分析实现一个简易的正则表达式引擎
首先给出博主自己编写的正则表达式文法(在编译器构造中自底向上的LALR(1)语法分析的语法分析表生成的实现这篇文章里已经出现过):
#1b S'' S preSurvey E T M F G outSquare B V C B'' inSquare inSquareRange #1e #2b \...[2018/10/8]
使用plumbing命令来深入理解git add和git commit的工作原理
前言: plumbing命令 和 porcelain命令
git中的命令分为plumbing命令和porcelain命令:
porcelain命令就是我们常用的git add,git commit等命令
plumbing命令可以理解为更底层的命令,实际上一个porcelain命令可以由若干个pl...[2018/10/8]
c++ Arx二次开发创建椭圆和样条曲线
一、本节课程
c++ Arx二次开发创建椭圆和样条曲线
二、本节要讲解的知识点
1、如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆)
2、如何应用C++ A...[2018/10/8]
用Micro:bit做交通信号灯用Micro:bit做交通信号灯
交通信号灯项目在控制技术中,有点像"Hello world!" 是一个入门级的范例。 对于孩子来说,交通灯跟日常生活息息相关,他们都熟悉,充分知道需要做什么这是一个让孩子开始的好项目。
接下来我们就做一个交通灯的控制模型。
该模型您所需要的模型是一个红色,黄色和...[2018/10/8]
python array的应用
数组的应用
应用1:洗牌
描述:洗牌后每个元素随机出现在每个位置,且概率相等
方法1:调用库函数
import random
def shuffle_system(cards):
random.shuffle(cards)
...[2018/10/8]
快速排序实现及其pivot的选取
coursera上斯坦福的算法专项在讲到快速排序时,称其为最优雅的算法之一。快速排序确实是一种比较有效的排序算法,很多类库中也都采用了这种排序算法,其最坏时间复杂度为$O(n^2)$,平均时间复杂度为$O(nlogn)$,且其不需要额外的存储空间。
基本步骤
快速排序主要使用了分治的思想,通过选...[2018/10/8]
数据结构和算法(What Why How)
数据结构和算法是什么?
从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。
从狭义上讲,是指某些著名的数据结构和算法,比如队列、堆、栈、二分查找、动态规划等。
数据结构和算法有什么关系?
数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上...[2018/10/8]
数组介绍
什么是数组?
数组是一种线性表数据结构,它用一组连续的的内存空间,来存储一组具有相同类型的数据。
数组如何实现随机访问?
基于数组的两大特性:线性表结构和连续的内存空间和相同类型的数据,使得数组可以通过下标直接访问数组元素,从而具有“随机访问”的特性。
具体实现方法:
当计算机需要随机访问数...[2018/10/8]
746. Min Cost Climbing Stairs
问题
在一个楼梯上,cost[i]表示第i个梯子的代价,只要你付出这个代价就可以爬一步或两步,你可以从index 0开始或者index 1开始爬。求爬到顶部(cost的index从0到n-1,要爬到index n的梯子上)的最小代价。cost的长度至少为2。
Input: cost = [10...[2018/10/8]
70. Climbing Stairs
问题
n阶楼梯,每次可以爬一或两步,问有多少种登顶的爬法。
思路
因为每次可以爬一步或两步。在第i个梯子上,有多少种爬法取决于在i-1和i-2的梯子上有多少种爬法。
简单的dp公式为:\(dp[i] = dp[i-1] + dp[i-2]\)。
显然这是一个斐波纳契数列,直接用两个变量f1和...[2018/10/8]
53. Maximum Subarray
问题
找出数组nums中的一个连续子数组,它们的和最大。
Input: [-2,1,-3,4,-1,2,1,-5,4],
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.
思路
用dp[i]表示以index i结尾的连...[2018/10/8]
198. House Robber
问题
非负数组表示每个房子拥有的金钱,抢了一个房子后不能抢隔壁房子的,求能抢到的最大数额。
Input: [1,2,3,1]
Output: 4
Explanation: 1 + 3 = 4.
思路
用dp[i]表示以index i结尾的子数组里,能抢的金钱最大和(不一定要抢nums[...[2018/10/8]
303. Range Sum Query - Immutable
问题
给出一个数组nums和下标i和j,求下标i到下标j之间的数组元素和,这个求和会被调用多次。
Given nums = [-2, 0, 3, -5, 2, -1]
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5...[2018/10/8]
338. Counting Bits338. Counting Bits
问题
输出一个数组,元素为[0, num]中每个数的二进制数中1的个数。
Input: 5
Output: [0,1,1,2,1,2]
思路
对于二进制以0结尾的(能被2整除)数,加1后1的个数加1。比如111比110多一个1。对于二进制以1结尾的数,加1后变成以0结尾的数,此时1的个数...[2018/10/8]
container_of宏和offsetof宏的总结
1、offsetof 宏
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
将地址0强制转换为type类型的指针,从而得到结构体成员member相对于结构体起始地址的偏移量。
2、...[2018/10/8]
877. Stone Game
问题
有偶数堆石头(数组长度为偶数),每堆石头有一些石头(数组元素为正),石头的总数是奇数。Alex和Lee两个人轮流取石头堆,每次可以从头部或尾部取,Alex先取。
给定这样一个数组,两人都以最优策略去玩这个游戏,如果Alex一定会获胜则返回True,否则返回False
思路
做法1:因为有...[2018/10/8]
413. Arithmetic Slices
问题
一组数如果长度至少为3,且相邻数的差都相同,则称这组数是算术的(其实就是长度大于2的等差数列)。
数组A包含N个数,如果有0<=P<Q<N,使得A[P], A[P+1], ..., A[Q]是算术的,则称这段数字为A的算数片。
输入数组A,要求返回数组A的算术片的个数。...[2018/10/8]