Which distribution uses what statistical test For the normal distribution, we can use z test, t test and ANOVA to test a mean difference between groups, but for non-normal distributions, including binomial distribution, negative binomial distribution, Poisson distribution, F distribution, do I choose what test to check the mean or other variable differences between samples? 
 A: Probably the standard approach in these cases would be to use a generalized linear model.  Appropriate hypothesis tests can then be made.  This is analogous to fitting a general linear model and then making hypothesis tests that result in the traditional anova for conditionally normal distributions.
Addition:
I should also mention that for some situations there may be specific appropriate tests, especially for the two sample case.  For example, two binomial proportions could be compared with a chi-square test (shown below with both prop.test and the equivalent chisq.test).  There are also tests to compare samples for Poisson processes, though I'm not very familiar with them.
Below is an example worked through in R to compare two binomial samples with logistic regression. One with 6 out of 16 successes and one with 10 out of 16 successes.  This code can be run in R or at rdrr.io
Load some supplemental packages.
if(!require(car)){install.packages("car")}
if(!require(emmeans)){install.packages("emmeans")}

Create two samples of data.
A     = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1)
B     = c(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
Y     = c(A, B)
Group = c(rep("A", length(A)), rep("B", length(B)))

Logistic regression and analysis of deviance
model = glm(Y ~ Group, family=binomial())

library(car)

Anova(model, test="Wald")

   ### Analysis of Deviance Table (Type II tests)
   ###
   ###       Df  Chisq Pr(>Chisq)
   ### Group  1 1.9571     0.1618

Use emmeans to get the proportions for the samples, confidence intervals for these proportions, and pairwise comparisons.
library(emmeans)

marginals = emmeans(model, ~ Group, type="response")

marginals

    ### Group  prob    SE  df asymp.LCL asymp.UCL
    ### A     0.375 0.121 Inf     0.179     0.623
    ### B     0.625 0.121 Inf     0.377     0.821

pairs(marginals)

    ### contrast odds.ratio    SE  df z.ratio p.value
    ### A / B          0.36 0.263 Inf -1.399  0.1618 

For comparison, we could use a simple chi-square to compare two binomial proportions. Note that the results are similar to, but not exactly the same as, the results from logistic regression.
prop.test(c(sum(A), sum(B)), c(length(A), length(B)), correct=FALSE)

### prop.test(c(6, 10), c(16, 16), correct=FALSE)

   ### 2-sample test for equality of proportions without continuity correction
   ###
   ### X-squared = 2, df = 1, p-value = 0.1573
   ###
   ### sample estimates:
   ### prop 1 prop 2 
   ### 0.375  0.625 

Note that this test is equivalent to a chi-square test of association on a contingency table.
Table = xtabs(~ Y + Group)

Table

   ###   Group
   ### Y    A  B
   ###   0 10  6
   ###   1  6 10

chisq.test(Table, correct=FALSE)

   ### Pearson's Chi-squared test
   ###
   ### X-squared = 2, df = 1, p-value = 0.1573

A: It depends on what you want to test (the specific null and alternative) and whether you need the test to be somewhat robust to the distributional assumption, or you will treat the model as a definite given and want to optimize power (or indeed desire some other property).
As an example, under normality the "best" test for comparing two variances would be an F-test (variance ratio test) but it's pretty sensitive to the assumption of normality, so in many cases people avoid it even though the alternatives will generally have less power when the assumption is true. Similar situations may occur when comparing means under some models.
Let's consider the case where we assume the model is definite and we wish to have good power (so we'd like to use the F-test for variances if we had normality). 
In that case, we have the Neyman-Pearson lemma (and generalizations of it), which given some conditions, yields tests with optimal properties. This leads to the wide use of likelihood ratio tests (or tests equivalent to likelihood ratio tests) in statistics. The difficulty is in computing the distribution of the test statistic (outside some nice cases), though there's a simple asymptotic (large-sample) approximation that is often used.
As Sal mentioned, generalized linear models are widely used; these would encompass the sorts of comparisons of means that you mentioned for a class of commonly used distributions (including the binomial, Poisson, gamma, and normal) and these estimate using maximimum likelihood and use likelihood ratio tests for inference, taking advantage of the asymptotic result mentioned above.
More generally in many cases a test comparing means could often be rewritten as a test involving one or two parameters and then in many cases that could be dealt with in a Neyman-Pearson type framework.
Alternatively, if some level-robustness is desired with a model that may not be perfect, yet retaining high power when at the model, you might consider a permutation test based off a likelihood ratio test (such as implementing a permutation version of a t-test of means when dealing with a normal model).
Depending on what you want to do well at/what tradeoffs you wish to make, you could do a variety of other things.
Both the possibilities I mentioned (likelihood ratio tests and permutation tests) are common fare -- they are fairly standard components in a statistics degree, which a statistics student would usually expect to encounter as an undergraduate (though it may depend on other factors, such as how applied the degree is).
Many posts on site discuss one or the other of those ideas. It's possible there's no posts actually discussing making a permutation test with a likelihood ratio statistic (outside specific examples that happen to be LR statistics), though if you're familiar with both ideas it's quite straightforward to do so.
