Actiger跳跳虎

基本SQL语句用法二

1.创建表 create table if not exists usrinfo( id INT(11), number INT(11), name VARCHAR(255), birthday DATE ); 2.查询表结构 show full columns from usrinfo; desc usrinfo; describe usrinfo; 3.查询创建表的语句 show create table usrinfo; 4.插入数据 插入单选数据 insert into usrinfo values (12123123,“hello”,“1990-02-15”); 插入多行数据 insert into usrinfo values (12123123,“hello”,“1990-02-15”), (12123123,“cc”,“1991-03-01”); 插入某些列 insert into usrinfo(number,name) values (121234123,“eefef”); 插入某些列多行 insert into usrinfo(number,name) values (121234123,“eefef”), (121234123,“eefef”); 5.查询某一列不重复的值 select distinct number from usrinfo; 6.增加新的列 增加新列 alter table usrinfo add id int(11);...

垃圾与垃圾篓

今天准备在厨房里扔干垃圾 厨房里两个垃圾篓 两个干净没有扔过垃圾的篓 思考哪个才是放干垃圾的 忽然想到, 扔到哪个篓, 哪个篓就是干垃圾篓 篓并不重要 是什么垃圾才重要 容器都是一样的, 重要的是你用什么来填满 就像今天, 你用什么填满, 今天就是什么样的...

申请单个域名方式

1. 起因 一级域名和二级域名都使用dns-01验证方式申请证书, 申请一级域名的时候更改了_acme-challenge.actiger.com, 续期的时候发现二级域名申请证书时的配置_acme-challenge.actiger.com验证失败, 续期失败 2. 解决方式, 使用不同方式申请证书, 续期不会有冲突 一级域名Actiger.com使用http文件申请证书 二级通用*.actiger.com用例dns-01的方式申请证书 3. 申请单个域名 certbot certonly --manual --preferred-challenges http --email example@icloud.com --domains actiger.com 提示在actiger.com/.well-known/acme-challenge/ 创建一个文件 假如你设置actiger.com跳转到www.actiger.com, 而www.actiger.com又跳转到blog.actiger.com, 可以把创建的文件放在blog.actiger.com/.well-known/acme-challenge/下 在服务器对应目录创建文件 创建文件成功后, 继续申请证书 申请证书成功后, 存放在/etc/letsencrypt下 ...

Ingress-Ningx配置多个SSL证书

1. 起因 我删除域名服务商对顶级域名(即一级域名)的默认的重定向, 直接指向的我服务地址 使用的通配的二级域名证书 访问顶级域名像actiger.com, 浏览器弹出安全提示了. 发现, 通配的二级域名证书不能用在actiger.com上 2. 申请顶级域名actiger.com的证书. 申请过程参照这里 3. Ingress Nginx的配置my-nginx.yml apiVersion: extensions/v1beta1 kind: Ingress metadata: namespace: nginx-space name: my-nginx spec: tls: - hosts: - weini.actiger.com - www.actiger.com secretName: ingress-secret - hosts: - actiger.com secretName: ingress-top-secret rules: - host: weini.actiger.com http: paths: - backend: serviceName: my-nginx servicePort: 80 - host: www.actiger.com http: paths: - backend: serviceName: my-nginx servicePort: 80 - host: actiger.com http: paths: - backend: serviceName: my-nginx servicePort: 80 - host: test....

Moco示例

1. Moco是什么? 简单的模拟服务器的程序库/工具, 有请求给出响应.在地址中下载moco-runner-0.12.0-standalone.jar. 2. 使用示例 1. 创建test.json [ { "description": "First test", "request": { "uri": "/demo" }, "response": { "text": "First Response" } } ] 2. 命令行启动服务, moco-runner-0.12.0-standalone.jar与test.json在相同目录下. java -jar ./moco-runner-0.12.0-standalone.jar http -p 8888 -c test.json 3. 验证 访问http://localhost:8888/demo 2. 模拟一个带参数的请求, para.json [ { "description": "模拟一个有参数的Get请求", "request": { "uri": "/getpara", "method": "get", "queries": { "name": "xiaoming", "age": "20" } }, "response": { "text": "I am on the way....

TestNG生成测试报告

1. 使用的extentreports生成的测试报告, 报告中使用的css文件需要上强(墙) <dependency> <groupId>com.aventstack</groupId> <artifactId>extentreports</artifactId> <version>4.0.9</version> </dependency> 测试方法 package com.actiger.reports; import org.testng.Assert; import org.testng.Reporter; import org.testng.annotations.Test; public class TestReport { @Test public void test1(){ Assert.assertEquals(1,2); } @Test public void test2(){ Assert.assertEquals(1,1); } @Test public void test3(){ Assert.assertEquals(3,3); } @Test public void log1(){ Reporter.log("这是日志"); throw new RuntimeException("这是一个异常"); } } 配置的xml <?xml version="1.0" encoding="UTF-8" ?> <suite name="mytest"> <test name="test"> <classes> <class name="com.actiger.reports.TestReport"> <method> <include name="test1"></include> <include name="test2"></include> <include name="test3"></include> <include name="log1"></include> </method> </class> </classes> </test> <listeners> <listener class-name="com....

TestNG超时测试

TestNG超时测试 超出预期时间则用例失败 package com.actiger.test.timeout; import org.testng.annotations.Test; public class TimeOut { @Test(timeOut = 3000) public void testSuccess() throws InterruptedException{ Thread.sleep(2000); } @Test(timeOut = 2000) public void testFail() throws InterruptedException{ Thread.sleep(3000); } } ...

TestNG多线程配置

1. 在方法注释中配置多线程, 配置线程池 package com.actiger.test.thread; import org.testng.annotations.Test; public class MultiThread { @Test(invocationCount = 10, threadPoolSize = 3) public void test(){ System.out.println("1"); System.out.println("Thread ID:%s%n" + Thread.currentThread().getId()); } } 2. 在xml中配置多线程, 不可配置为线程池. package com.actiger.test.thread; import org.testng.annotations.Test; public class MultiThreadOnXml { @Test public void test1(){ System.out.println("Thread ID: " + Thread.currentThread().getId()); } @Test public void test2(){ System.out.println("Thread ID: " + Thread.currentThread().getId()); } @Test public void test3(){ System.out.println("Thread ID: " + Thread.currentThread().getId()); } } multiThread....

TestNG参数化测试

1. 参数化测试, 使用DataProvider来参数化. @Test中dataProvider的名字与@DataProvider名称一致 @Test(dataProvider = "data") public void dataProvider(String name, int age){ System.out.println("Name:" + name + ", " + "Age:" + age); } @DataProvider(name = "data") public Object[][] data(){ Object[][] oo = new Object[][]{ {"zhangsan", 18}, {"lisi", 20}, {"wangwu", 30} }; return oo; } 2. 针对不方法识别, 使用不同参数 @Test(dataProvider = "testMethod") public void method1(String name, int age){ System.out.println("Name:" + name + ", " + "Age:" + age + "1111"); } @Test(dataProvider = "testMethod") public void method2(String name, int age){ System....

TestNG依赖测试和xml文件参数化

1. TestNG依赖测试, 1个用例依赖其他的测试方法, 怎么表示这种关系呢, 在注解后加标签dependsOnMethods 例如, 方法2就依赖于方法1, 如果方法1执行失败了, 方法2就无法执行了. package com.actiger.test.all; import org.testng.annotations.Test; public class Dependon{ @Test public void dependon1(){ System.out.println("dependon 1111111"); throw new RuntimeException(); } @Test(dependsOnMethods = {"dependon1"}) public void dependon2(){ System.out.println("dependon 2222222"); } } 2. TestNG的xml文件参数化 1.创建方法 package com.actiger.test.paramter; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class ParamterTest { @Test @Parameters({"name", "age"}) public void paramTest1(String name, int age){ System.out.println("Name:"+ name + ", " + "Age:" + age); } } 2....